首页 > 代码库 > 数据和C

数据和C

C语言有丰富的数据类型,主要有三大类:即整型数据、浮点型数据和字符型数据:

一、整形数据:

  int是最基本、最常见的整型数据,into可以满足我们大多数情况下对整型数据的要求。但某些时候整型数据并不完美,其表示范围有限,不能表示绝对值超过一定值的数据,而且其长度固定,在只需用到比较小的数值时又比较浪费(如100以内的整数),所以出了int之外,语言还提供了其他的整数类型,主要有short,long,long long。此外,为了区分有符号数和无符号数,C语言还提供了signed(有符号)和unsigned(无符号数)修饰符。其声明方法示例为:

  int a;//常见的整型,有符号

  short int b;  (short b;)//短整型

  long int c; (long c;)//长整型

  long long int d; (long long d;)//更长的整型

  signed int e;//有符号整型

  unsigned int f;//无符号整型,最小为0

  unsigned short int//无符号的短整型,

  类型不同,其长度不同,表示范围也不同。C语言整型的表示范围很有意思,short int并不一定比int短,而是有可能和int一样长,long int也不一定比int长,而有可能和int一样长。其准确含义是,short int 不长于int,long int不短于int。有无符号只影响其表示范围,不影响长度。其字节长度的关系可表示为long long int >= long int >= int > short int 。

  若想查看每种类型具体的长度,可运行代码(单位为字节(Byte)):

  

printf("XXX has a size of %u.\n", sizeof(XXX));//XXX表示数据类型  

  关于C中整型的表示范围需要注意的是,C中的数据范围是一个循环,就像钟表的表盘一样,当一个数据已是其表示范围内的最大值时,对其进行+1操作有其值会变为其表示范围内最小的值。即:假设int表示范围的最大值为123455,最小值为-123456,执行如下代码:

int a;a = 123455;printf("a+1 = %d\n", a+1);printf("a+2 = %d\n", a+2);

编译执行后会输出:

a+1 = -123456

a+2 = -123455

此处需特别注意。

/*未完待续。。。*/

数据和C