c中int和long类型

16位系统:long是4字节,int是2字节

32位系统:long是4字节,int是4字节

64位系统:long是4字节,int是4字节

 

    指针长度默认是unsigned long。

 

    int的长度,是由硬件和系统共同决定的。比如当年的dos是运行在16位CPU下的,他的int就是两个字节,win95是运行在32位CPU下的,但是win95还是16位的系统设计,所以他的int还是2个字节,到2000,NT,XP,cpu是32位的,windows也支持32位,所以他的int就是32位的了。语言并没有规定类型的长度,但是有一些规则,比如:char不论在什么时候都是一个字节(即8个bit),int永远比char长,long不会小于int的长度。所以说,long和int其实是有差别的。

关于long foo和extern short foo,赋值之后出现的情况:

假定一个程序在一个源文件中包含了声明: long fop;而在另一个源文件中包含了 extern short foo;
如果给long类型的foo赋了一个较小的值37,short类型的foo同时获得一个值37.那么我们知道运行改程序的硬件是一个低位优先的机器。
如果给long类型的foo赋了一个较小的值37,short类型的foo同时获得一个值0.那么我们知道运行改程序的硬件是一个高位优先的机器。

float类型和double类型:

float的指数位有8位,而double的指数位有11位,分布如下: 

float: 

1bit(符号位) 

8bits(指数位) 整数位最大可以表示255

23bits(尾数位) 

double: 

1bit(符号位)

11bits(指数位) 

52 bits (尾数位)

分别写出bool,int,float,指针类型的变量a与“零”的比较语句

 
  • BOOL  : if ( !a ) or if(a)

  •  
  • int   : if ( a == 0)

  •  
  • float : const EXPRESSION EXP = 0.000001

  •          if ( a < EXP&& a >-EXP)

  •  
  • pointer : if ( a != NULL) or if(a == NULL)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值