对于二维数组int a[2][3]来说,a和&a[0][0]一样吗?都表示数组首地址吗?
&a[0][0]也就是a[0]指的是第一行第一个元素的地址,而a指的是第一行的地址,也就是行指针!如果要表示数组首地址的话两个都可以吗?
#include <stdio.h> int main(int argc,char*argv[]) { char test[2][3]={'a','b','c','1','2','\0'}; int size1,size2,size3; size1=sizeof test; size2=sizeof test[0][0]; size3=sizeof &test[0][0]; printf( "test=%s,sizeof test=%d\n",test,size1); printf( "test[0][0]=%c,sizeof test[0][0]=%d\n",test[0][0],size2); printf( "&test[0][0]=%s,sizeof &test[0][0]=%d\n",&test[0][0],size3); return 0; }测试结果如下: