1、运算符和表达式,C语言运算符的种类,运算符:1)算术.加+ 减- 乘* 除/ 求余% 自增+ 自减- 2)关系.大于 等于= 小于= 小于等于 5)赋值=;+=-=/=*=;复合位运算符(&=,|=,=,=,.强制转换符,基本运算,1)赋值运算: 赋值是将赋值运算右操作数的值存放到其左操作数所标识的存储器中. 左操作数必须为右操作数指明一个确定的可存储位置.如a+1=b+1 是错误的 赋值符有右结合性 a=b=c=1 可理解为 a=(b=(c=1) 如果赋值运算符两边的数据类型不相同,系统将自动进行类型转换 (向左看齐) 2)算术运算 “短向长靠拢”,3)关系运算 关系运算符 关系表达式的结果
2、总是int类型的(0或1即真或假)4)逻辑运算 逻辑运算符 & 与 | 如果下面一个条件满足,则整个计算完毕。 在逻辑“与”表达式中,exp1的计算结果为0 在逻辑“与”表达式中,exp1的计算结果为1,基本运算,5)自增和自减运算,基本运算,1)位运算 2)复合运算 3)条件运算 4)逗号运算,其他运算,5) 指针p的值就是变量a的存储地址 *运算符称为间接访问运算符:如果指针p指向了变量a,则变量a的值可以用*p表示, 即*p=a 6)sizeof sizeof(类型名), sizeof(类型名), sizeof(类型名),其他运算,#include main() char ch; printf(“double=%dtc=%dn“,sizeof 10.0,sizeof (c); printf(“char=%dtfloat=%dn“,sizeof ch,sizeof (float); getch(); ,左值和右值,左值: 左值表达式具有可存储地址值的表达式被称为左值,因为它可以出现在赋值运算符的左边 如a=a+1;正确而a+1=a不正确(但a出现在右边仍然正确的) 1)变量可以作左值 2)常量不可以为左值(如120=a+1就是错误的) 3)表达式作为左值: Int a,*p; P= /* *p表达的是一个存储位置,是一个左值表达式*/,