二维数组a[0]是指向数组第一行第一个元素的指针,一维数组的a[0]代表首地址。
&a[0]是第一行的首地址,从数值上讲,两者没有问题,只是数据类型有所不同。a[0][0]是取第一行第一个元素的值,即1。此外,C语言中的二维数组可以通过指针进行访问,例如,int *b=a[0],这定义了一个指向整数的指针b,使b指向数组a的第一行。通过这种方式,我们可以访问和修改数组中的元素...
数组下标从0开始的,即(0,0)是第一行第一个数,(0,1)是第一行第二个数(1,0)是第二行第一个数
第0行第0列。在c语言中数组名就是其首元素的地址,二维数组a[0][0]就表示第0行第0列。二维数组其实就是每一个元素为一维数组的数组。
【答案】:一位数组组名 解析:int a[3][4],表示的是三个一位数组,表示的是3行四列的表格,可以把每一行看成一个一位数组,这样就容易理解了。所以a[0]可以看成是第一行第一列的元素,即第一行的首地址,即为一个一维数组名。
即int[4]数组),或a是二维数组第0行的地址。即二维数组的名字a代表二维数组第0行的地址。
在C语言中规定,数组名代表的是数组首元素地址。如有定义int a[10][100];a表示二维数组的数组名。a也是这个数组的首地址。因此,在二维数组中*(a+i)表示的是第i+1行0列元素的地址,即a[i][0]的地址。而a+i表示的是第i+1行的首地址。
第1行第二列,数组下标是从0开始的
intmain(){inta[2][3]={1,2,3,4,5,6};printf("the a is %d\n",**a);return0;} ...
而使用*a时,等同于TYPE*型。从概念上说,a表示二维数组a的首地址,而*a表示二维数组a第一行a[0]的首地址。这样在使用的时候就有所区别。比如 对a的操作a[4]表示a的第四行首地址,而对*a的操作(*a)[4]则代表第一行的第4个元素,即a[0][4]。所以a和*a除了值相同外,其它的各方面都...