MERROR 发表于 2021-3-27 20:45:53

C++自增问题

int i=1,j;
则表达式i++||i++||i++的值为1(真),
运算结束后,为什么变量i的值为2,而不是4?

人造人 发表于 2021-3-27 21:03:21

这样的表达式,不符合标准,标准没有规定最后的结果是什么,编译器的设计者可以随意发挥,也就是说,不同的编译器很有可能结果不一样
你可以找几个不同的编译器试试看

人造人 发表于 2021-3-27 21:06:52

嗯,抱歉,上面说的不对
还记得逻辑运算符的短路操作吗?
|| 运算符如果第一个数就是true,那就不会再执行后面的判断了
也就是这个表达式实际就++了一次

weijun_zhang 发表于 2021-3-27 21:13:47

因为这是或逻辑,i++是真,i=2;所以整个句子是真,后的两次i++都不会再执行,因此i不会变成4
页: [1]
查看完整版本: C++自增问题