请问一个C++的问题

来源:百度知道 编辑:UC知道 时间:2024/06/08 07:49:07
a=0,b=0,c=0;
a=a++||a>b++||(c=b++,a++)
则a=?,b=?,c=?
为什么是1,1,0呢

a=0,b=0,c=0;
a=a++||a>b++||(c=b++,a++)
第二句
b++,所以b=1;
因为a++一定是真,所以a++||a>b++||(c=b++,a++) 返回真,bool转换为int 就是1; 所以a=1;
应为你执行了b++ 所以b加了1(返回值是0),所以b=1;
因为你b++,a++ 给a,b+了1;但是返回值都是0;所以c=0;
如果你写 ++b ++a 那么b,a都加1,返回值也是1;

在各个编译器中得出的结果是不同的
因为很多开发软件中的编译器规定这种计算的顺序不是很一致的
A=1;B=2;C=3(参考)

a=1,b=1,c=0

妙士酸奶 说得对,不同的编译器对a=a++||a>b++||(c=b++,a++) 的执行顺序是不同的,有的是从左到右,但有的又是从右到左,所以说这些答案都是正确的,只是在不同的编译器里运行的结果而已