RT。在64位系统下打印基本数据类型的地址,是32位的,这是怎么回事?
#include <stdio.h> int main(int argc,char*argv[]) { int a=0; printf("%x\n",&a); return 0; }
结果是32位的地址,我的机器配置: Linux alex 3.6.10-1-ARCH #1 SMP PREEMPT Tue Dec 11 09:40:17 CET 2012 x86_64 GNU/Linux
查看地址用 %p参数来格式化,不然即使是long也同样的是被阉割成32的,具体原因可能跟历史有关吧。
欢迎来到随意问技术百科, 这是一个面向专业开发者的IT问答网站,提供途径助开发者查找IT技术方案,解决程序bug和网站运维难题等。 温馨提示:本网站禁止用户发布与IT技术无关的、粗浅的、毫无意义的或者违法国家法规的等不合理内容,谢谢支持。