强调作业!
(1)数组名等于数组第0个元素的地址,但含义不同。
使用int a[5];定义数组a,编译器进行编译时分配了5个连续的空间,同时将数组名a解析为数组第0个元素的地址,即a=&a[0],虽然数组名a和&a[0]值相同,但是含义是不一样的,使用sizeof分别输出长度就会发现,a代表的是整个数组,而&a[0]只是表示自己。
1 #include <stdio.h> 2 3 int main(){ 4 int a[5]; 5 printf(" a=%p\n",a); 6 printf("&a=%p\n",&a[0]); 7 8 printf("sizeofa=%lu\n",sizeof(a)); 9 printf("sizeof&a[0]=%lu\n",sizeof(&a[0])); 10 11 return 0; 12 }