语言程序设计基础.ppt
算术运算符和算术表达式*自增、自减运算符:注意:自增运算符(++)和自减运算符(--),只能用于变量,而不能用于常量或表达式。如5++或(a+b)++都是不合法的。++和--结合方向是“自右至左”。需知:符号运算符和“++”运算符同优先级,其结合方向也为“自右至左”。例:-(i++)是先用i的原值3加上负号输出-3,再对i加1,不要认为先加完1后再加负号,输出-4,这是不对的。算术运算符和算术表达式有关表达式使用中的问题说明:如果i的原值等于3,则:避免出现歧义。如:i+++i+++i++应该写成:i=3;a=i++;b=i++;c=i++;d=a+b+c;不要写成:i+++j,而应写成:(i++)+j的形式。不要写成:printf(“%d,%d”,i,i++);其结果为:4,3而应写成:j=i++;printf(“%d,%d”,j,i)其结果为:3,4*#includestdio.hvoidmain(){ inti=3; printf(%d\n,i++); printf(%d\n,i); i=3; printf(%d\n,++i); printf(%d\n,i);}运行结果:3444#includestdio.hvoidmain(){ inti=5; printf(%d\n,(i++)+(i++)+(i++)); printf(%d\n,i); i=5; printf(%d\n,(++i)+(++i)+(++i)); printf(%d\n,i);}运行结果:158228举例:关系运算符和表达式*关系运算符种类:====!=结合方向:自左向右优先级别:低于算术运算符,高于赋值运算符====!=优先级相同(高)优先级相同(低)例ca+b---c(a+b)ab!=c---(ab)!=ca==bc---a==(bc)a=bc---a=(bc)x=a==b---x=(a==b)x==yz---x==(yz)关系运算符和表达式*关系表达式用关系运算符将2个表达式连接起来的式子称为关系表达式。这2个表达式可以是算术表达式、关系表达式、逻辑表达式、赋值表达式或字符表达式。关系表达式的值是一个逻辑值,即真1或假0。(注意,在判断时只要非0就表示真)正确的关系表达式如:a+bc+dab==cdx!=’d’(x=2)=(b=a)逻辑运算符和逻辑表达式*逻辑运算符种类:!||逻辑运算真值表:ababa||b!a11110100100101100001已知A为真、B为假:A||B||C||D||E?ABCDE?是不是必需要计算完表达式所有的项逻辑运算符和逻辑表达式*!(2)(11)||(12)高低优先级:结合方向:!:从右向左:从左向右||:从左向右例a=4;b=5;!aaba||b!a||b40||2532||84-!0‘c’‘d’值为1值为0值为1值为1值为1值为1//(53)2||(8(4-(!0)))值为1赋值表达式*由赋值运算符(=)将一个变量和一个表达式连接起来的式子称为“赋值表达式”。它的一般形式为:变量标识符=表达式作用:将一个数据(常量或表达式)赋给一个变量如:a=5;b=‘a’;c=.59;a=b=12;复合赋值运算符种类:+=-=*=/=%=《=》==^=|=含义:exp1op=exp2?exp1=exp1opexp2a+=3a=a+3x*=y+8x=x*(y+8)x%=3x=x%3结合性:自右向左;式子的值与变量的值相等逗号运算符和表达式*C语言提供一种特殊的运算符——逗号运算符。用它将两个表达式连接起来。如:3+5,6+8称为“逗号表达式”,又称为“顺序求值运算符”。逗号表达式的求解过程:先求解表达式1,再求解表达式2,…,再求解表达式n。形式:表达式1,表达式2,……表达式n