C++自增问题
int i=1,j;则表达式i++||i++||i++的值为1(真),
运算结束后,为什么变量i的值为2,而不是4? 这样的表达式,不符合标准,标准没有规定最后的结果是什么,编译器的设计者可以随意发挥,也就是说,不同的编译器很有可能结果不一样
你可以找几个不同的编译器试试看 嗯,抱歉,上面说的不对
还记得逻辑运算符的短路操作吗?
|| 运算符如果第一个数就是true,那就不会再执行后面的判断了
也就是这个表达式实际就++了一次
因为这是或逻辑,i++是真,i=2;所以整个句子是真,后的两次i++都不会再执行,因此i不会变成4
页:
[1]