二维数组的有关问题
二维数组的问题
请问对于二维数组a[3][3]
变量a与a[0]与a[0][0]分别表示什么
------解决方案--------------------
楼上正解,LZ需要注意,在做地址运算时,虽然a和a[0]值相同,但是代表的意义不同,具体的详见C语言的书籍。
------解决方案--------------------
请问对于二维数组a[3][3]
变量a与a[0]与a[0][0]分别表示什么
------解决方案--------------------
楼上正解,LZ需要注意,在做地址运算时,虽然a和a[0]值相同,但是代表的意义不同,具体的详见C语言的书籍。
------解决方案--------------------
- C/C++ code
地址都是一样的. 不过基类型不是一样的 a[0]首行指针. a[0][0] 0行0列元素地址 看下面的代码.. #include<stdio.h> int main() { int a[3][3]={1,2,3,4,5,6,7,8,9}; int (*pr)[3] = NULL; int *pdata = NULL; printf("a : %d\n",a); for(int i = 0 ; i < 3 ; i++ ) { printf("a[%d] :%d\n",i,a[i]); } for( i = 0 ; i < 9 ; i++) { printf("a[%d][%d] 地址 :%d\n", i/3,i%3 ,(&a[i/3][i%3])); } for(i=0;i<9;i++) { printf("%d ",a[i/3][i%3]); } printf("\n"); pdata = ((int *)(&a[0][0])+1);//指向第二个. printf("%d\n",*pdata); pdata++;//后移一个 printf("%d\n",pdata[0]); pr = (int(*)[3])(&a[0]+1);//指向第二行第1个 printf("%d\n",pr[0][0]); pr++;//指向第三行第1个 printf("%d\n",pr[0][0]); return 0; }