- 5
- 0
- 约1.39万字
- 约 70页
- 2021-03-19 发布于广东
- 举报
3、自增自减运算符(重点与难点) (1)作用: 自增1运算(++)使单个变量的值增1,自减1(--)运 算使单个变量的值减1。 (2)用法与运算规则 ●自增、自减运算符都有两种用法:(1)前置运算──运算符放在变量之前:++i; --i; 先使变量的值增(或减)1,然后再以变化后的值参与其它运 算,即先增减、后运算。 (2)后置运算──运算符放在变量之后:i++; i--; 变量先参与其它运算,然后再使变量的值增(或减1) 即先运算、后增减。 大学C语言程序设计基础第2章 [例J3-4] #includestdio.h void main() {int i=3,x,y; x=i++; /* 执行后,x的值为3,i的值为4*/ y=++i; /* 执行后,y的值为5,i的值为5*/ printf(%d %d %d\n,x,y,i); } 执行后,输出为:3 5 5 演示 大学C语言程序设计基础第2章 [例] #includestdio.h void main() {int i=8; printf(%d,++i); printf(%d,--i); printf(%d,i++); printf(%d,i--); printf(%d,-i++); printf(%d,-i--); /*单目运算++、- -结合方向自右向左,相当于–(i++) 和 -(i- -) */ getch(); } 结果:9 8 8 9 -8 -9 大学C语言程序设计基础第2章 [例] #includestdio.h void main() {int x=100; printf(%d,%d,%d,%d\n,x++,x,--x,x); /*TC20编译器下函数的实参数的求值顺序为:自右向左*/ printf(%d\n,x); getch(); } TC20 下运行结果:99,99,99,100 100 大学C语言程序设计基础第2章 [例](注意:本例不要求掌握) main() {int a,b,c; a=b=c=0; a=++b+++c; /*b,c均先增1,然后再相加*/ a=b+++c++; /*b,c先相加,然后再增1*/ a=++b+c++; /*b先增1和b相加后,c再增1*/ a=b - -+ - - c; /*c先减1和b相加后,b再减1*/ printf(“%d,%d,%d\n”,a,b,c); } 运行结果:5,2,2 结论:形如 i+++i这样的表达式,从左至右尽可能多地将若干字符组合成运算符, 故i+++i解释为(i++)+i。 大学C语言程序设计基础第2章 思考题:当j=3时,表达式(++j)-((j++)+(j++))的值是多 少? 计算完成后j的值又是多少? (3)说明 (1)自增、自减运算,常用于循环语句中,使循环控制 变量加(或减)1,以及指针变量中,使指针指向 下(或上)一个地址。 (2)自增、自减运算符,不能作用于常量和表达式。 例如:5++、--(a+b) 等都是非法的。 (3)在表达式中,连续使同一变量进行自增或自减运算 时,很容易出错,所以最好避免这种用法。 -4和6 大学C语言程序设计基础第2章 2.2.3 赋值运算符与赋值表达式 1、简单赋值运算符和赋值表达式 赋值运算是把数据赋给内存中存储的变量。 “=”就是简单赋值运算符,由“=”连接的式子称为简单赋值表达式。 一般形式为:变量 = 表达式 例如, x =(a+5-sin(b))/sqtr( s ) y = i++ - (float)5 / 2 n=n+1 ●赋值运算具有右结合性, 如:a=b=c=5理解为:a=(b=(c=5)) a=(b=5)/(c=2) 先算b=5, 再算c=2,则5/2得到2,赋值给a, 整个表达式的值 也是2。 思考:设变量a的值为9,表达式b=(a=4)/(b=a) 的值是1还是0? 表达式尾无分号 大学C语言程序设计基础第2章 2、赋值运算中的类型转换 赋值运算符左右类型不同时
原创力文档

文档评论(0)