前段时间面试时,突然被问道一下两个问题,当时居然懵逼了,一下做个记录:
1.查看Linux 系统位数:
命令:getconf LONG_BIT 如图:
在这里插入图片描述
这是一个64位系统

2.在64位机器上,sizeof(int)是几个字节?
int:是4个字节,不跟随系统变化,与c语言标准有关

对于各种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位系统上:
在这里插入图片描述

Logo

更多推荐