一. 数据的表现形式有两种:1.常量 2.变量
二.
1.常量是一种在程序中保持固定类型和固定值的数据。编译系统从数据形式上可以区分(除枚举类型外)。常量分为:
(1)整型常量
(2)实型常量
(3)字符常量
(4)字符串常量
(5)枚举常量
2.变量是在程序执行过程中可以改变。
三.
1.整型常量
十进制:18、-31
long int型常量:123l、123L、123456l、123456L
unsigned int型常量:123u、 123U
根据实际数据大小确定int型还是long型
2.以数字“0”开始的整型常量是八进制数:022、-037
010和10大小不一样
因为八进制并不常用,所以此种表示法比较少见
3.以“0x”或者“0X”开始的整型常量是十六进制
A~F和a~f用来表示十进制的10~15
十六进制的形式比较常用:0x12、-0x1F, -0x1f
4.实型常量
十进制小数形式: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
5.字符常量的表示方法: ’a’,’A’,’5’,’%’,’$’……
单引号内只能有一个字符,除非用“\”开头
6. 就是一个普通整数,也可以参与各种数学运算
每个字符具有一个0~255之间的数值,可从ASCII表查出
注意:’5’和整数5的区别
字符的数学运算在密码学内用得比较多
7. 用“\”开头的字符为转义字符
例如,’\n’,代表1个字符
8. 转义字符
一些特殊字符(无法从键盘输入或者另有它用)用转义字符表示
四.
1. 整型int
整数,在目前绝大多数机器上占4个字节。TC环境中是2个字节
2. 单精度实型float
单精度浮点数,一般是4个字节长
3. 双精度实型double
双精度浮点数,一般是8个字节长
4. 字符型char
字符,一般是1个字节长
用来表示256个ASCII字符,或者0~255的整数
5. 枚举型enum
五. 字符串常量
1. 字符串常量是一对双撇号括起来的字符序列.
- 合法的字符串常量: “How do you do.”, “CHINA”, “a” , “$123.45”
3. 可以输出一个字符串,如:printf(“How do you do.”);
4. C规定:在每一个字符串常量的结尾加一个“字符串结束标 志”,以便系统据此判断字符串是否结束。
C规定以字符’\0’作为字符串结束标志。
六.
混合运算:整型(包括int,short,long)、浮点型(包括float,double)可以混合运算。在进行运算时,不同类型的数据要先转换成同一类型,然后进行运算.
1. 在进行赋值操作时,会发生类型转换
2. 将取值范围小的类型转为取值范围大的类型是安全的
3. 反之是不安全的
(1)如果大类型的值在小类型能容纳的范围之内,则平安无事
(2)但是,浮点数转为整数,会丢失小数部分,非四舍五入
(3)反之,转换后的结果必然是错误的,具体结果与机器和实现方式有关。避免如此使用,好的编译器会发出警告
七. 类型强制转换运算符“(类型)”
1. 消除从大到小的警告:l =(long)i;
2. 可以通过“(类型)表达式”的方式把表达式的值转为任意类型
(1)强转时,你必须知道你在做什么
(2)强转与指针,并称C语言两大神器,用好了可以呼风唤雨,用坏了就损兵折将
八.C的运算符有以下几类:
(1)算术运算符 (+ - * / %)
(2)关系运算符 (> < == >= <= !=)
(3)逻辑运算符 (! && ||)
(4)位运算符 (<< >> ~ | ∧ &)
(5)赋值运算符 (=及其扩展赋值运算符)
(6)条件运算符 (?:)
(7)逗号运算符 (,)
(8)指针运算符 (*和&)
(9)求字节数运算符(sizeof)
(10)强制类型转换运算符( (类型) )
(11)分量运算符(.->)
(12)下标运算符([ ])
(13)其他 (如函数调用运算符())
九. 基本算术运算符: + - * / %
结合方向:从左向右
优先级:- ---->* / % -----> + -
说明:
“-”可为单目运算符时,右结合性
两整数相除,结果为整数;有一实数相除,结果为实数
%要求两侧均为整型数据
十.简单赋值运算符
符号: =
格式: 变量标识符=表达式
作用:将一个数据(常量或表达式)赋给一个变量
十一. 复合赋值运算符
种类:+= -= *= /= %= 《= 》= &= ^= |=
含义:exp1 op= exp2 ó exp1 = exp1 op exp2
十二. 自增、自减运算符
作用是使变量的值增1或减1
如:
• ++i,--i(在使用i之前,先使i的值加(减)1)
• i++,i- - (在使用i之后,使i的值加(减)1)
i++与++i的区别:
++i是先执行i=i+1后,再使用i的值;
i++是先使用i的值后,再执行i=i+1。
例如:
①j=++i; i的值先变成4, 再赋给j,j的值均为4
②j=i++; 先将 i的值3赋给j,j的值为3,然后i变为4
十三. 每条语句用分号“;”结束。
不是语句的,不能以分号结束,如预处理命令。
十四. 格式说明符
1 %d或%i按十进制有符号整数输出,正数的符号省略
2 %u按十进制无符号整数输出
3 %o按八进制无符号整数输出(不输出前导0)
4 %x或X按十六进制无符号整数输出(不输出前导符0x)
5 %c按字符型数据输出
6 %s按字符串数据输出
7 %f按小数形式输出(6位小数)
8 %e或E按指数形式输出实数
9 %%输出%本身
10 %g或G选用%f或%e格式中输出宽度较短的一种格式,不输出无意义的0
可加在格式说明符前
1 m 表示数据占用的宽度,正整数
2 n 对实数,指定小数位数(四舍五入)
3 对字符串,指定实际输出位数
4 l 加在d、o、x、u前:输出长整型
5 加在f、e 、g前:输出双精度型
6 h 加在d、o、x 前:输入短整型
7 - 输出数据在域内左对齐(默认右对齐)
8 + 指定在有符号数的正数前显示正号(+)