一、C语言数据类型
包含下面几种:
1. 变量 C语言中用变量来存储计算过程中使用的值,任何变量都必须先定义类型在使用。先定义是因为变量的类型决定了变量占用的存储空间,所以定义变量类型,就是为了给该变量分配适当的存储空间,以便存放数据。
1> 在Java中,你声明了一个局部变量后,如果没有经过初始化赋值就使用该变量,编译器直接报错;
2> 在C语言中,你声明看一个局部变量后,没有经过初始化赋值是可以使用的;--- 不过系统是给变量随机赋值的
3> char的取值范围是:ASCII码字符 或者-128~127的整数 (注意汉字或者字符串需要使用字符数组来存储,因为一个汉子占了两个字符,一个字符串是由一个或者多个字符组成的)
2. 类型修饰符
我们还可以在基本数据类型的前面加一些修饰符,也有人称之为限定符,一样的意思。
有以下4种类型修饰符:
- short 短型
- long 长型
- signed 有符号型
- unsigned 无符号型 (只能接收整数或者是零)
这些修饰符最常是用来修饰int类型(可以省略int)
1 // 下面两种写法是等价的 2 short int s1 = 1; 3 short s2 = 1; 4 5 // 下面两种写法是等价的 意思就是C语言中是不存在long数据类型的,其本质还是int类型 6 long int l1 = 2; 7 long l2 = 2; 8 9 // 可以连续使用2个long 10 long long ll = 10; 11 12 // 下面两种写法是等价的 13 signed int si1 = 3; 14 signed si2 = 3; 15 16 // 下面两种写法是等价的 17 unsigned int us1 = 4; 18 unsigned us2 = 4; 19 20 // 也可以同时使用2种修饰符 21 signed short int ss = 5; 22 unsigned long int ul = 5;
2.2 当然,数据的存储长度也会跟着变化。比如,在64位编译器环境下,short占2个字节(16位),int占4个字节(32位),long占8个字节(64位)。世界上的编译器林林总总,不同编译器环境下,取值范围和占用的长度是不一样的,不过幸运的是,ANSI \ ISO制定了以下规则:
* short跟int至少为16位(2字节)
* long至少为32位(4字节)
* short的长度不能大于int,int的长度不能大于long
* char一定为为8位(1字节),毕竟char是我们编程能用的最小数据类型
3> signed和unsigned
1> signed代表有符号,包括正数、负数和0;unsigned代表无符号,只包括正数和0。比如,signed的取值范围是-32768~32767,那么unsigned的取值范围是0~65535,当然,不同的编译器有不同的取值范围
2> 其实,signed和unsigned的区别就是它们的最高位是否要当做符号位,并不会像short和long那样改变数据的长度,即所占的字节数;
4>signed、unsigned也可以修饰char,long还可以修饰double
unsigned char c1 = 10; signed char c2 = -10; long double d1 = 12.0;
资源来自http://www.cnblogs.com/mjios/archive/2013/03/13/2957946.html 博客园