今天同样一段代码在xshell上跑和visual c++上跑得到不一样的结果:
sizeof(char *) = 8 //linux
sizeof(char *) = 4 //windows
原因是和系统及编译器有关。
64位系统的寻址空间为2^64,保存一个指针需要64bit即8字节;
32位系统的寻址空间为2^32,保存一个指针需要32bit即4字节;
故以上差别可以用来判断系统是多少位的。
2、不同系统下其他数据类型的差别
在32位系统中,sizeof(long) = 4;sizeof(void *) = 4;