数据类型的本质:固定大小内存块的别名
#include "stdio.h"
void main()
{
int b[10] ; //告诉c编译器分配40个自己内存
printf("b:%d, b+1:%d, &b:%d, &b+1:%d \n", b, b+1, &b, &b+1);//b:1244972, b+1:1244976, &b:1244972, &b+1:1245012
printf("sizeof(b):%d \n", sizeof(b)); //40
system("pause");
}
b 代表的数组首元素的地址。(相当于一条街中第一户的地址)
&b 代表的是整个数组的地址 。(相当于整条街的地址)
int类型一个元素占4个字节,
b:1244972, b+1:1244976 之间相差4;(跨过一个int类型的住户)
&b:1244972, &b+1:1245012 之间相差4*10.(跨过一条街,这条街有10个int类型的住户)
而所分配区域的地址由该区域的第一个元素的地址表示,所以b与&b打印出的值相同。