本身是个地址,用int存放,占用4个字节。int就是4,a[100]一共是100个int变量,就是400.sizeof(a[100])//求第100个元素的大小 ,用int存放,占用4个字节 sizeof(&a)//表示存放a的地址的空间内存的地址的大小,即&a也是个地址值。一个地址用int存放也是4个字节 sizeof(&a[0])//取第一个元素的地址,用int存放,占用4个字节4.int b[100]; void fun(int b[100]) { sizeof(b); //等于4 } 和void fun(int* b) { sizeof(b); //等于4 }是等价的。 当你在调用fun函数时,他们内部实际上是这样做的,先将b[100]数组的首个元素的地址赋值给了函数参数列表中的那个b指针,虽然都是b,但是却是在不同额作用域,故你可以理解成fun参数列表中的b是一个指针,在32位系统中,指针永远是4个字节。