#include <stdio.h>
void main()
{ char d;
int i,a[3][4];
int b[5];
int *p;
printf("&a+1=%d\n",&a+1);//&a+48*1,48代表数组a所占的内存空间大小
printf("&a+2=%d\n",&a+2);//&a+48*2
printf("&a+3=%d\n",&a+3);//&a+48*3
printf("a+1=%d\n",a+1);//
//a++;error C2105: '++' needs l-value,表示'++'需要一个左值,说明a是常量
printf("a=%d\n",a);
printf("&a=%d\n",&a);//&a是对整个数组所占的内存空间取地址,相当于我们定义了一个整型变量int a,对a取地址&a,得到的地址当然是a的首字节地址。
printf("*a=%d\n",*a);
for(i=0;i<10;i++)
printf("a[%d]=%d\n",i,a[i]);//顺利编译通过并运行成功,说明a[i]代表a+i*16.系统将数组名当作
printf("&a[2][3]=%d\n",&a[2][3]);
printf("%d\n",sizeof(a));
printf("%d\n",sizeof(b));//以上两行,由于a,b是数组,这里的数组名不代表数组首元素地址(地址常量),而代表的是整个数组所占的存储单元,同&a+i的解释
printf("%d\n",sizeof(p));
printf("%d\n",sizeof(d));
printf("&d=%d\n",&d);
printf("&d+1=%d\n",&d+1);
printf("&d+2=%d\n",&d+2);
printf("&d+3=%d\n",&d+3);
}
void main()
{ char d;
int i,a[3][4];
int b[5];
int *p;
printf("&a+1=%d\n",&a+1);//&a+48*1,48代表数组a所占的内存空间大小
printf("&a+2=%d\n",&a+2);//&a+48*2
printf("&a+3=%d\n",&a+3);//&a+48*3
printf("a+1=%d\n",a+1);//
//a++;error C2105: '++' needs l-value,表示'++'需要一个左值,说明a是常量
printf("a=%d\n",a);
printf("&a=%d\n",&a);//&a是对整个数组所占的内存空间取地址,相当于我们定义了一个整型变量int a,对a取地址&a,得到的地址当然是a的首字节地址。
printf("*a=%d\n",*a);
for(i=0;i<10;i++)
printf("a[%d]=%d\n",i,a[i]);//顺利编译通过并运行成功,说明a[i]代表a+i*16.系统将数组名当作
printf("&a[2][3]=%d\n",&a[2][3]);
printf("%d\n",sizeof(a));
printf("%d\n",sizeof(b));//以上两行,由于a,b是数组,这里的数组名不代表数组首元素地址(地址常量),而代表的是整个数组所占的存储单元,同&a+i的解释
printf("%d\n",sizeof(p));
printf("%d\n",sizeof(d));
printf("&d=%d\n",&d);
printf("&d+1=%d\n",&d+1);
printf("&d+2=%d\n",&d+2);
printf("&d+3=%d\n",&d+3);
}