前段时间面试时,突然被问道一下两个问题,当时居然懵逼了,一下做个记录:
1.查看Linux 系统位数:
命令:getconf LONG_BIT如图:
这是一个64位系统
2.在64位机器上,sizeof(int)是几个字节?
int:是4个字节,不跟随系统变化,与c语言标准有关
对于各种c语言类型大小没有精确的定义,能够确保的只有如下几点:(一下描述来自:必须知道的495个c语言问题)
char类型可以存放小于等于±127的值,即2^7,最高位表示符号位。若为五符号数,则是255,即2^8; int 和short int 可以存放小于等于±32767,2^15,若为无符号数,则是65536,即是2^16,**即最大4个字节** long int 无符号数是±2147484467,2^31,若为无符号数,则是4294967295,即是2^32, 总结:根据c99的规定,char 至多8位,1个字节;int 至多16位,4个字节;long int 则是之多32位。8个字节
指针变量:会跟随系统变化,因为不同系统,用二进制标识自己的寻址是位数不同啊,如64位系统寻址65537位置,如果指针变量还是4个字节,肯定不能找到
在64位系统上:
在32位系统上:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)