程序的最终目的是处理数据,而数据是以特定的形式(如整数,实数,字符等)存在的,不同的数据之间还存在着某种联系(如一个整数数组是由若干个整数组成的),我们所说的数据结构就是数据的各种特定形式(数据的组织形式)。而数据类型呢?就是各种数据结构的表现形式。
一.贯穿始终的两个类型:
1, 常量(字面常量,直接常量)1>整形常量2>实型常量3>字符常量
4>符号常量:#define myname myvalue;
2, 变量:变量名字实际上是一个符号地址,在对程序编译连接时由系统给每一个变量名分配一个内存地址,在程序中从变量中取值,实际上是通过变量名找到相应的内存地址,从其存储单元中读取数据。
二.整型
数据在内存中是以二进制形式存放的。数值是以补码表示的,正数的补码与其源码的形式相同,负数的补码是将该数的绝对值的二进制形式,按位取反再加1。
1,整形常量1>十进制2>八进制0开头 3>十六进制0x开头
3, 整形变量:
1, 有符号基本整型 signed int --32768~~32767
2, 无符号基本整型 unsigned int 0~~65535
3, 有符号短整型 signed short int –32768~~32767
4, 无符号短整型 unsigned short int 0~~65535
5, 有符号长整型 signed long int
6, 无符号长整型 unsigned long int
当整型变量的实际数值大于它所能容纳的最大数值时,就会发生“溢出”,但运行时并不报错。需要程序员的细心。
三.实型数据:
实数(real number)又称为浮点数(floating-point number)。他有两种表示形式:
1, 十进制小数
2, 指数形式,规范化指数形式1.2222E2
3, 实形变量:
单精度 float 32 6,7位有效数字
双精度 double 64 15,16
长双精度 long double 128 18,19
实际编程中应注意他有多少位有效数字,以防止舍入误差。
4,实形常量:许多编译系统将它作为双精度来处理。
四.字符型数据
用char的类型标识符来表示。
字符型数据在内存中都是以二进制的形式表示,所以字符型数据与整型数据之间具有相通性。
1, 可以相互替代输出;
2, 两者之间可以进行混合运算;
3, 字符变量可以接受“一定限度内”的整型数据。
4, 控制字符用转意字符“\”表示
\a 响铃 ; \b退格,由当前位置向前退一字符(消除前一字符);\f 换页符,移到下页开头 ;\n换行符;\r回车符;
5, 字符串常量:
C规定:在每一个字符串的结尾加一个字符串结束标志,‘\0’是一个ASCII码为0的字符,他是一个“空操作字符”,即不引起任何控制动作,也不是一个可显示的字符。