C++初级问题,麻烦进来看看,谢谢!```~复习迎考,帮帮忙啊

来源:百度知道 编辑:UC知道 时间:2024/05/30 09:11:52
问题虽然简单 但可能有写罗嗦 请见谅啊``
问题1: if(x--<10) cout<<x++;cout<<--x;
若x=10,则输出结果是?
答案为什么是8啊?我怎么以为是10? 具体的运算顺序怎么看的啊?我以为是先x-- 于是它<10满足"真",cout9++ 即10啊!(中间还有两个问题,cout<<x++ 是先输出x然后x++ 还是直接输出x++后的值?第2个cout前面有个else和没else有什么区别?糊涂了```
问题2:int x=1;while(x=0) x++;cout<<x;
是不是因为while判断中已经将x赋0了,所以虽然循环没有进行,在cout里,输出的是0而不是1?(答案是0)
分数不多 还请担待`

看来lz是对++和--没有理解拿++来讲,前置操作也就是++a,返回的是左值,即加1后的值,也就是对象本身,而后置操作a++,返回的是右值,也就是没加1的值所以你的程序第一步判断x--的时候返回的是10,条件不成立,跳到下面语句,但是x--是执行了的,也就是现在的x==9,然后--x返回减1之后的值,即8至于第二个问题就是你自己分析的原因

x = 10
if(x--<10) //先将x作为x--表达式的值再x-1,所以if表达式为0。此时x=9
cout<<x++; //没有运行
coun<<--x; //先将x-1并将结果作为--x表达式的值,因此输出8