printf与数据类型

来源:互联网 发布:直播间礼物系统源码 编辑:程序博客网 时间:2024/06/08 02:54

我们都知道数据在内存中以二进制的形式存储,当我们使用不同的数据类型以同样的方式打印的时候会出现什么样的情况呢。

例如:

int  i_num=68;

char c_num =' D ';

printf("%c",i_num);// D

printf("%d",c_num);//68

通过上面的例子可以看出,在printf中。一个整型以字符型的格式输出时,他会表示一个字符,而不是一个整数,字符型以整型格式输出时表示的是一个整数。

再比如

unsigned int x=0xFFFFFFFF;

int y=0xFFFFFFFF+1;

printf("%d",x);//-1

printf("%u",y)//0

由此我们可以知道,数据的中内存中的存储方式是一样的,我们对它的解析方式不同,得到的结果也会不同.所以我们在使用printf的时候

要使用正确的解析方式才能正确的表示我们所需要的值。

当遇到浮点型的数据的时候,其中的错误会更加不可思议。详见我的数据类型之坑这篇博文,会在明天发布


0 0