------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
一.自增、自减运算符介绍
在程序设计中经常用到i=i+1和i=i-1这两种操作用的非常多。C语言中为这两种操作提供了更为简洁的运算符,即++和--,分别叫做自加运算符和自减运算符。它们是单目运算符,是从右向左结合的运算符。
二.自增、自减运算符求值过程
1.前缀表达式:++x,--x;其中x表示变量名,先完成变量的自增自减运算,再用x的值作为表达式的值,即“先变后用”,也就是变量的值先变,再用变量的值参与运算。即先变后用。
例:前缀表达式:++a,求值:先让a的值+1,再取出a的值作为表达式的值,a的初始值为3,则
(1)a的值:4
(2)++a表达式的值:4
2.前缀表达式:x++,x--;先用x的值作为表达式的值,再完成变量的自增自减运算,即“先用后变”,也就是先用变量的值参与运算,变量的值载进行自增自减变化。即先用后变
例:后缀表达式:a++,求值:先取出a的值作为表达式的值,再让a的值+1,a的初始值为3,则
(1)a的值:4
(2)a++的值:3
三.实例分析
例1:
int main(int argc,const char*argv[]){
int a=3,result=0;
result=(a++);//先取出a的值,a的本身再+1
printf("result=%d,a=%d\n",result,a);
return 0;
}
程序运行结果:result=3,a=4
例2:
int main(int argc,const char*argv[]){
int a=3,result=0;
result=(++a);//先使a+1,再将a的值赋给result
printf("result=%d,a=%d\n",result,a);
return 0;
}
程序运行结果:result=4,a=4
例3:
int main(int argc,const char*argv[]){
int a=3,b=5;
int result=a+++b++;
printf("a=%d,b=%d,result=%d\n",a,b,result);
return 0;
}
程序运 行结果:a=4,b=6,result=8
分析:a++表达式的值为3,b++表达式的值为5,所以result的值为8
注意:
1.不管是a++还是++a,最终执行过,a的值都会加1
例:计算a的值,int a=3,(++a)+b+(a++)。a的值为5
2.自加运算符和自减运算符只能用于变量,不能用于常量
例:以下为错误的使用:(1)++3;(2)int a=3,++(a+3)
四.技巧
i++ 先看到的是变量,表达式的值就是变量的值
++i 先看到的是++,表达式的值是i的值+1