a[0][0]执行的是数学上的乘法,如a[0][0] * 2; *a、a[0]和a[1]执行的是取值,如**a + *a[0] + *a[1] a和&a[1]执行的是由原来的二维数组变为一维数组,也可理解为改变指针的类型,其加1的意义就不同了,如a+1和(*a)+1的不同.结果...
a[0]是个指针指向a[0][0]~a[0][5]的起始元素a[0][0],那么a[0]+1,也可以这样理int *p; p=a[0]; 则a[0]+1就是这个指针加1以后指向的元素,相当于a[0][1]、与p+1指向a[0][1]一样,即p[1]就是a[0][1],把p换成a[0],不就是a[0][1]吗a[0]是个指向5个元素一组的指针,...
而用了取地址符 & 之后,从第一部分内容的表可知,&a[0] 的类型就是 int (*)[4] ,赋值正确。 因此就可以回答第一部分最后的问题了,一开始a[3][4] 的 a 确实不是一个地址(指针),而是在被用来赋值时,编译器内部会做相应的指针隐式转换,转换后的 a 才是一个指向数组首元素的指针。 3、a[1]是下级...
第1行第二列,数组下标是从0开始的
a[i][j],i是行数,j是列数。a[0][1]就是第0行第1列的元素。a[0][0]当然是第0行第0个元素,即数组的首元素。
您好,很高兴能为您解决问题。绝对是2,绝对正确,请采纳吧。希望我的解答能帮到您,望采纳!
即a[0][0] 是二维数组的第一个元素,也是第 0 行的第一个元素,他们的位置是一样的所以地址也必然是相同的。a = a[0] = &a[0] = &a[0][0];举例: i=1;a[i] 就表示的是第 i 行的首地址,也就是 a[i][0]这个元素所在的地址;&a[i] 取得a[i][0]的地址,它和首地址是...
语句中 a[1] 表示 地址 &a[1][0], a[2] 表示 地址 &a[2][0].即二维数组a 的 第2行 元素 的 首地址 和 第3行 元素 的 首地址。
这是一个两行三列的数组,a[1]是第二行的地址,a[0]是第一行的地址
二维数组名是一个指向一个一维数组的指针,a是一个二维数组名,就是一个指向一维数组的指针,一个这样的指针求间接运输(*a),得带的是这个指针所指向的一维数组的数组名,在此是 a[0], 数组名加一个下标就是数组元素值,(*a)[1]就是 第0行数组的第1个元素 a[0][1]-->2 a[1]->...