*(a+i)+j代表的是第 i行,j列的那个元素,这个没有问题吧。
而那个元素是指针。不是值,所以再加*取值。 这和普通的 *p=a;一个意思。
主要原因是数组里面放的全部都是指针,你可以看你定义时候的声明就知道了。
给你一个形象的例子,假设有个一维数组a,
a代表数组a的首地址,也就是&a对吧,*a为第一个元素的值,*a+1为第二个元素的值,也就是*(a+1);
现在是二维数组b
*(b+i)其实就是*b+i对吧,表示数组b的第i行地址,没有问题吧?*(b+i)+j表示第i行地址又便宜了j个单元,也就是数组b的第i行第j列元素的地址,这里没有问题吧?再加个*号,*(*(b+i)+j)就是第i行第j列元素的值。记住一点一维数组要获取元素的值,必然有1个*号,二维数组要获取元素的值,必然有2个*号。
这是哪种语言的程序啊?