一个整型和浮点型问题。

数据类型子类型修饰符简写长度数值范围类型变量定义类型常量
整型数有符号短整型数signed short intshort或int2字节-32768~32767int a, b;十进制数: 以非0开始的数;如:220, -560, 45900
八进制数: 以0开始的数;如:06; 0106
十六进制数:以0X或0x开始的数;如:0X0D, 0XFF, 0x4e
长整形数:整型常数后添加一个"L"或"l"字母, 如22L, 0773L, 0Xae4l
有符号长整型数signed long intlong4字节-2147483648~2147483647 
无符号短整型数unsigned short intunsigned int2字节0~65535 
无符号长整型数unsigned long intunsigned long4字节0~4294967295 
浮点型有符号单浮点数floatfloat4字节3.4x10-38E~3.4x10+38Efloat a, f;例如: +29.56, -56.33, -6.8e-18, 6.365
1. 浮点常数只有一种进制(十进制)。
2. 所有浮点常数都被默认为double。
3. 绝对值小于1的浮点数, 其小数点前面的零可以省略。如:0.22可写为.22, -0.0015E-3可写为-.0015E-3。
4. Turbo C默认格式输出浮点数时, 最多只保留小数点后六位。
有符号双浮点数doubledouble8字节1.7x10-308E~1.7x10+308Edouble b;
       

#include "stdio.h"
void main()
{
double a;
a=1.1;
int b = *(int*) & a;
printf("%d",b);
printf("%f",(double)10/3);
printf("%f",10/3)
}
运行以上代码,结果为-1717986918 3.333333 0.000000

printf是不定参数,要想打印正确值数据类型要一致,援引一段,“如果希望能得到正确的整数值,必须要求addr所在的地址是一个真实的int类型。但是当我们传入double时,实际上其内存布局和int完全不同,因此我们得不到需要的整数。”

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值