资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,*,运算符和表达式,C语言运算符的种类,优先级,运 算 符,结合性,1,( ) - .,左结合,2,! + -,+(正,) (,负,) *(取内容) &(取地址) (类型) sizeof,右结合,3,* / %,左合性,4,+ -,左结合,5,(位移),左结合,6,= ,左合性,7,= !=,左结合,8,&,左结合,9,左合性,10,|,左结合,11,&,左结合,12,|,左合性,13,?:,右结合,14,= += -= /= *= = |= =,右结合,15,(豆号),左结合,运算符:,1)算术.,加,+,减,-,乘,*,除,/,求余,%,自增,+,自减,-,2)关系.,大于,等于,=,小于,=,小于等于,=,不等于,!=,3)逻辑.,与,&,或,|,非,!,4)位运算.,位与,&,位或,|,位非,位异或,左移,5)赋值,=;+=-=/=*=;,复合位运算符(&=,|=,=,=,.,强制转换符,基本运算,1)赋值运算:,赋值是将赋值运算右操作数的值存放到其左操作数所标识的存储器中.,左操作数必须为右操作数指明一个确定的可存储位置.,如,a+1=b+1,是错误的,赋值符有右结合性,a=b=c=1,可理解为,a=(b=(c=1),如果赋值运算符两边的数据类型不相同,系统将自动进行类型转换,(向左看齐),2)算术运算,“短向长靠拢”,3)关系运算,关系运算符,关系表达式的结果总是int类型的(0或1即真或假),4)逻辑运算,逻辑运算符,& 与 |,如果下面一个条件满足,则整个计算完毕。,在逻辑“与”表达式中,exp1的计算结果为0,在逻辑“与”表达式中,exp1的计算结果为1,基本运算,5)自增和自减运算,基本运算,1)位运算,2)复合运算,3)条件运算,4)逗号运算,其他运算,5)&和*运算,&运算符,称为取地址运算符:用来取操作数的地址,如:int a,*p;p= 指针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指向了由变量a所代表的特定的存储位置*/,*p=*p+1; /* *p表达的是一个存储位置,是一个左值表达式*/,
展开阅读全文