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语言的打印直接操作数据的存储的位(并不是改变数据的值的意思),前面附带的各种条件按条件打印。

posted @ 2016-03-02 00:35  xhyxhy  阅读(732)  评论(0编辑  收藏  举报