此问题在此处已有答案:
Why are these constructs using pre and post-increment undefined behavior?(14个答案)
Undefined behavior and sequence points(5个答案)
2天前关闭。
谁能解释一下下面的话。
a = 1;
b = 1;
b = a++;
cout << "a = " << a << " & b = " << b;
output:
a = 2 & b = 1
在上面的代码中,'a'的输出值为2,'b'的值为1。因为b = a++意味着,首先将'a'的值赋给'b',然后'a'递增。现在考虑下面提到的另一个场景。
a = 1;
a = a++;
cout << "a = " << a;
output:
a = 1
这里,逻辑上'a'的值必须是2。因为'a'被赋值给'a',所以'a'也被递增。类似于前面提到的b = a++。但是,a的值仍然是1。
1条答案
按热度按时间zwghvu4y1#
增量运算符既可以在赋值前将变量的值加1,也可以在赋值后将变量的值加1,因此可以分为两种类型:预递增运算符;后置增量运算符; 1)预递增运算符:预递增运算符用于在表达式中使用变量值之前递增该值。在预递增运算符中,值首先递增,然后在表达式中使用。