C语言二维数组问题,急求解。

来源:百度知道 编辑:UC知道 时间:2024/06/15 21:46:03
{int a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23},(*p)[4]=a,i,j,k=0;
for(i=0;i<3;i++)
for(j=0j<2;j++)k+=*(*(p+i)+j);求k值,详解

p是一个指针数组,数组里的每个元素都是一个指针

p[0]指向a[0],p[1]指向a[1],p[2]指向a[2]

所以

p + i相当于p[i]

*(p + i)相当于*p[i]即a[i]

*(p + i) + j相当于&a[i][j]

*(*(p + i) + j)就是a[i][j]了

所以被加起来的元素是a[0][0] + a[0][1] + a[1][0] + a[1][1] + a[2][0] + a[2][1] = 1 + 3 + 9 + 11 + 17 + 19 = 60;

k = 60

附上一个图,你可以看一下变量的地址和值,比较一下就知道了

C语言中的一个二维数组问题 c语言二维数组的问题 C语言,二维数组指针问题. 关于C语言二维数组指针问题? 动态分配二维数组(C语言) c语言二维数组实例 c语言 排列二维数组 关于C语言二维数组的问题/?? c语言二维字符串数组输入的问题 c语言关于定义二维数组的问题