例如:main()
{ int x=8,y,z;
y=(++x)+(x++)+(++x);
z=(–x)+(x–)+(++x);
printf(“y=%d,z=%d,x=%d”,y,z,x);
}
则经过运算,y的值为30、z的值为33。而变量x的值为10。
自增自减的总结
对于含有自增和自减运算的表达式,C语言系统一般按以下三步来完成计算
① 将所有先自增、自减运算抽出进行计算。
② 计算的结果带入表达式中,计算表达式的值。
③ 再将所有后自增、自减运算抽出进行计算。
上例中的表达式y=(++x)+(x++)+(++x); C语言系统先进行两次x的自增计算,使x的值由8变为10。然后将10带入表达式中计算(即计算“x+x+x”),得结果30,并赋给变量y。最后再进行一次x的后自增计算,使变量x的值由10变为11。
注意:
当自增、自减运算出现在函数的参数中时,它们不按该方法进行计算。在函数中的计算方法由C语言系统采用扫描格式决定。函数的参数中都避免使用自增、自减运算符。
————————————————
版权声明:本文为CSDN博主「Weiwei yixiao」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/zch0127/article/details/52891980
这段代码与结论,结合我自己碰到的一些题目,我对这段结论提出了质疑。
然后我在vc上和dv上