测试程序dev编译器中进行, 如有错误,请联系我,我会及时做出修改,
在c语言中,++、–的运算,单独成为一条语句时,为隐式的自加1,自减1,
例:
单独出现以下某语句时
++i; //表现为i=i+1;
--i; //表示为i=i-1;
i++; //表示为i=i+1;
i--; //表现为i=i-1;
1.后自加或自减运算
int i=1,j=1; //进行后自加或自减运算
printf(“初始值:i=%d\n”,i);
i++;
printf(“i++ 运算后的值为:i=%d\n”,i);
printf(“初始值:j=%d\n”,j);
j–;
printf(“j-- 运算后的值为:j=%d\n”,j);
结果为
初始值:i=1
i++ 运算后的值为:i=2
初始值:j=1
j-- 运算后的值为:j=0
2. 前自加或自减运算
int a=1,b=1; //进行前自加或自减运算
printf(“初始值:a=%d\n”,a);
++a;
printf("++a 运算后的值为:a=%d\n",a);
printf(“初始值:b=%d\n”,b);
–b;
printf("–b 运算后的值为:b=%d\n",b);
初始值:a=1
++a; 运算后的值为:a=2
初始值:b=1
--b; 运算后的值为:b=0
和其他运算符连用
"++i 或者 --i" 在和其他运算符连用时,先进行自加或自减运算,再进行其他运算
"i-- 或者 i++" 在和其他运算符连用时,先拿原值进行其他运算,紧接着该变量发生自加或自减,再拿改变值后的该变量所对应的值,
(先是该变量等于原值,下一次用该变量后,该变量的值已是自加或自减运算后的值)
前自加或自减运算和其他运算符连用时
代码:
int i=1;
printf("i的值为 i=%d\n",i);
i+=++i; //++ 和 + 的优先级:++ > + , 即单目运算符大于算术运算符,可以看成 i=i+ ++i; i先自加结果为2 i=2+2
printf("运算后i的值为 i=%d",i);
***结果为:***
i的值为 i=1
运算后i的值为 i=4
后自加或自减运算和其他运算符连用时
代码:
int i=1,j;
printf("i的值为 i=%d\n",i);
j+=i--; //-- 和 + 的优先级:-- > + , 即单目运算符大于算术运算符,可以看成 i=i+ i--; i先拿原值进行其他运算,最后再自减或自加运算
//先是该变量等于原值,下一次用该变量后,该变量的值已是自加或自减运算后的值)
printf("j=%d\n",j);
printf("运算后i的值为 i=%d",i);
***结果为***:
i的值为 i=1
j=2
运算后i的值为 i=0