整型int
整数,在目前绝大多数机器上占4个字节。TC环境中是2个字节
单精度实型float
单精度浮点数,一般是4个字节长
双精度实型double
双精度浮点数,一般是8个字节长
字符型char
字符,一般是1个字节长
用来表示256个ASCII字符,或者0~255的整数
枚举型enum
数据类型长度
e
int main()
{
int a = 1; //有符号整型a
unsigned int b; //无符号
printf("int %d\n", sizeof(a)); //sizeof()是关键字,不是函数,求数据类型的长度
printf("int %d\n", sizeof(int)); //整型 signed int ==== int
printf("char %d\n", sizeof(char));
printf("float %d\n", sizeof(float));
printf("double %d\n", sizeof(double));
printf("short %d\n", sizeof(short)); //短整型 short int ===== short
printf("long %d\n", sizeof(long));
return 0;
}
## 常量与变量
数据的表现形式有两种:常量和变量
常量是一种在程序中保持固定类型和固定值的数据。编译系统从数据形式上可以区分(除枚举类型外)。常量分为:
整型常量
实型常量
字符常量
字符串常量
枚举常量
变量是在程序执行过程中可以改变。
整型常量
十进制:18、-31
long int型常量 123l、123L、123456l、123456L
unsigned int型常量 123u、 123U
根据实际数据大小确定int型还是long型
以数字“0”开始的整型常量是八进制数
022、-037
010和10大小不一样
因为八进制并不常用,所以此种表示法比较少见
以“0x”或者“0X”开始的整型常量是十六进制
AF和af用来表示十进制的10~15
十六进制的形式比较常用:0x12、-0x1F, -0x1f
实型常量
十进制小数形式 :123.45、456.78
指数形式 :1e-2、4.5e3
float型常量 123.45f、 456.78F、1e-2f、4.5e3F
long double型常量 123.45l、 456.78L、4.5e3L
缺省为double
字符型数据
字符常量的表示方法
’a’,’A’,’5’,’%’,’$’……
单引号内只能有一个字符,除非用“\”开头
就是一个普通整数,也可以参与各种数学运算
每个字符具有一个0~255之间的数值,可从ASCII表查出
注意:‘5’和整数5的区别
字符的数学运算在密码学内用得比较多
用’‘开头的字符为转义字符
例如,’\n’,代表1个字符
字符串常量
字符串常量是一对双撇号括起来的字符序列.
合法的字符串常量:
“How do you do.”, “CHINA”, “a” , “$123.45”
可以输出一个字符串,如
printf(“How do you do.”);
C规定:在每一个字符串常量的结尾加一个 “字符串结束标 志”,以便系统据此判断字符串是否结束。
C规定以字符’\0’作为字符串结束标志。
如:如果有一个字符串常量”CHINA” ,实际上在内存中是:
它占内存单元不是5个字符,而是6个字符,最后一个字符为‘\0’。但在输出时不输出‘\0’。
各类数值型数据间的混合运算
混合运算:整型(包括int,short,long)、浮点型(包括float,double)可以混合运算。在进行运算时,不同类型的数据要先转换成同一类型,然后进行运算.
C的运算符有以下几类:
(1)算术运算符 (+ - * / %)
(2)关系运算符 (> < == >= <= !=)
(3)逻辑运算符 (! && ||)
(4)位运算符 (<< >> ~ | ∧ &)
(5)赋值运算符 (=及其扩展赋值运算符)
(6)条件运算符 (?:)
(7)逗号运算符 (,)
(8)指针运算符 (*和&)
(9)求字节数运算符(sizeof)
(10)强制类型转换运算符( (类型) )
(11)分量运算符(. ->)
(12)下标运算符([])
(13)其他 (如函数调用运算符())
优先级
函数符号() 数组下标[]
单目运算符
算数运算符
移位运算符
关系运算符
逻辑运算符
三目运算符
自增、自减运算符
作用是使变量的值增1或减1
如:
++i,–i(在使用i之前,先使i的值加(减)1)
i++,i- - (在使用i之后,使i的值加(减)1)
i++与++i的区别:
++i是先执行i=i+1后,再使用i的值;
i++是先使用i的值后,再执行i=i+1。
逗号运算符和逗号表达式
逗号运算符:将两个表达式连接起来,又称为“顺序求
值运算符“,如:
3+5,6+8;
逗号表达式 的值为14
一般形式: 表达式1,表达式2
求解过程:
先求解表达式1,再求解表达式2。整个逗号表达式的值是表达式2的值。
while
while (表达式) 语句
当表达式为非0值时,执行while语句中的内嵌语句。其特点是:先判断表达式,后执行语句。
do…while
do
循环体语句
while (表达式);
do-while语句的特点:先执行循环体,然后判断循环条件是否成立