C语言中的数据类型详解
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言中的数据类型详解相关的知识,希望对你有一定的参考价值。
c语言其实可以理解为为救两种数据类型,整数和浮点数(bool类型char类型都可以看作整数类型)。
不过这次并不是从两个方面说,而把char类型等从整数类型分开说。
而对于数据类型的说明也从存储和打印两个方面说起。
存储: 0.数据类型的位数是由操作系统决定的,一般系统都把一个char类型的位数当作一个字节。
1.int 类型
int类型种类很多,
总结为前面叫long(short******),signed(unsighed);
对于short long等前缀词,c标准并没有给出规定,是根据不同的系统实现的。
为什么要有那么多标准? 答:因为对于你所使用的数据,
如果只使用int,在操作系统中只有一种表示位数,不能有选择的表示数据。而使用short
long等的重要的作用是能使c具有可移植性,我们知道,long short并没有规定固定的位数,所以在不同的系统上能有更好的可移植性。
溢出的情况:如果溢出,那会重第一个再开始。
2.char类型
标准ASCII码范围是0-127,所以只要8位表示即可,当然也有扩展集。
char类型在计算机中的存储是和int类型一样的(除了位数不一样)。所以存储中几乎可以把char类型看出int类型。
3._Bool类型
_Bool类型由c99引入,可以说就是一种只有一位表示的数字的整数类型,使用比较方便。
4.可移植类型:inttypes.h
这个理解为一个c库,用宏来实现固定位数的数据类型。如:int_16t。
5.float double 类型
浮点数与整数的存储方式完全不同,如果胡乱混用,会产生无法预料的后果。
浮点数的存储分为符号。整数部分。小数部分三部分存储,所以没法与整数混用。
溢出:上溢:当浮点数大到超过数据类型的位数时,使用printf时会显示inf和infinity。
下溢:超过精确度的部分舍去。
对于浮点数与整数混用之间的情况:
在声明中如果将浮点数声明为int变量,那会舍弃浮点数的小数部分。
而如果在打印中出现这种情况,则会发生不可预料的情况。
对此,我的理解是打印的话直接操作数据的存储的位,而声明变量并不是操作变量存储的位。
打印
c语言的打印直接操作数据的存储的位(并不是改变数据的值的意思),前面附带的各种条件按条件打印。
以上是关于C语言中的数据类型详解的主要内容,如果未能解决你的问题,请参考以下文章
(计算机组成原理)第二章数据的表示和运算-第二节7:详解C语言中的强制类型转换