arr是一个地址,大小8字节,而int型大小是4字节,为什么4字节大小能装下8字节内容。
在32位系统(即x86)中,指针的大小为4字节,在64位系统(即x64)中,指针的大小为8字节。指针变量所占字节数只和计算机的位数相关,和其所指向的数据类型默认所占大小无关。
你怎么判断arr是8字节,而int不是8字节的呢?
arr是一个地址,它并不负责装下int,它只是int所在的内存的编号。
再比如说
struct User
{
char name[100];
int age;
};
这样一个结构体,那大了去了
但是
User * p; 同样只要几个字节。