C++ ( &&, ||)中的用户重载逻辑运算符的行为类似于常规函数。也就是说,bool operator&&(const T &a, const T2 &b);中的两个参数都是在进入函数之前计算的,因为进入函数是C++中的序列point1。一切都好到这里。现在,“内置运算符&&和||执行短路评估”2,其中左侧和右侧之间有一个序列点。引用的参考文献并不清
我知道下面的代码不是用C编写表达式的好方法,而且可能有很多帖子已经阻止了这样的文章,但我确信输出不依赖于编译器。下面是代码的样子: int x = 2; int z = x || ++y;printf("%d %d %d\n", x, y, z);}
现在我知道短路会发生,++y永远不会被评估,但是如果我没有错,一