摘要: 问一个程序员,int* p=null;sizeof(p)等于几?如果他随口而出“4”,事实真是如此吗?首先,指针是什么?指针中存储一个地址,而地址又是什么?学过微机原理的人都知道:三大总线中,地址线用来寻址,而地址线的位数由cpu的寄存器来决定。比如,32位的地址线能寻址的空间是4G,64位的地址线则能寻址264 ,每一个寻址单元是一个字节,8位;也就是说,在64位地址线系统中,一共最多有264个字节(注意,实际内存远远没这么大,大约有1800万TB),那么你的地址就得有64位才能存下这么多信息,既然地址是64位,那么指针要想能完全寻址,理论上当然需要64位。所以,回答sizeof(p)=4, 阅读全文