先说说i,j的值
i=0.j=0
i=0,j=1
i=1,j=0
i=1,j=1
第一组:
k=k+*(*(p+i)+j)
第二组:
k=k+*(*(p+i)+j) 注意k的值已变化
第三组:
k=k+*(*(p+i)+j) 注意k的值已变化
第四组:
k=k+*(*(p+i)+j) 注意k的值已变化
一时忘记怎么算(*p)[4]=a,i,j,k=0; 这个了
套用一下就可以了
定义的是一个二维数组,(*p)[4]=a表示将这个二维数组的首地址即&a[0][0]赋给(*p)[4],初始化时这里(*p)其实相当于&a[0],若*(p+i)则相当于a[i]
*(*(p+i)+ j)就相当于a[i][j],两个for循环就是执行1+3+9+11+17+19=60
结果:60
p是一个指向一维数组的指针,循环的作用是将二维数组
1 3 5 7
9 11 13 15
17 19 21 23
的前两列累加
p+i是对行进行移动,每次移动4个int的存储空间
*(p+i)+j是对列进行移动,每次移动1个int的存储空间
*(*(p+i)+j)就相当于a[i][j]
i