数据类型

1、bit 位

    1字节=8位

    1个字(32位处理器)=4个字节=32位

    半字 = 2个字节 = 16bit


2、字节长度跟编译器分配有关系。


3、sizeof 不是函数,strlen是函数。


4、int num;sizeof(num);

     int num;sizeof num;两种写法

sizeof(int)是对的写法,sizeof int是错误的。


5、用sizeof编程:int占4个字节,char占1个字节,float占四个字节,long占四个字节,short占2个字节,double占8个字节。


6、指针都是四个字节,因为所有指针变量保存的都是地址,操作系统地址长度是固定的,地址长度是由操作系统的位数决定的,如果操作系统是32位的,指针占4个字节,如果操作系统是64位,指针占8个字节。


7、sizeof计算长度是加‘\0’的,strlen计算长度‘\0’不算在内。


8、计算机中保存的负数除了符号位为一其他取得是原数的补码。

正数原码就是补码。

负数补码是原码绝对值取反加一。


9、通过typedef给数据类型重命名(如typedef unsigned char un_char)不仅提高了代码的移植性,而对代码起到了保护作用。


最后通过一道题来理解一下,关于char型常量取值范围:

某公司笔试题目:
int main()
{
       char a[1000];
       int i;
       for(i = 0; i<1000;i++)
       {
            a[i] = -1 – i;
       }
       printf(“%d\n”,strlen(a)) ;
       return 0;    
}
输出结果?


解析:我们都知道char型无符号数取值范围为0~255,有符号数取值范围为-128~127

题目中有两个转折点,当循环到a[128] = -1 - 128,计算结果为127

当i=255时a[255] = 0,表示‘\0’循环结束。整个数组的长度为255.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值