巨兔12138 发表于 2020-5-30 15:32:37

自增、自减运算符问题

#include<iostream>
using namespace std;
int main()
{
        int i,j,m;
        i=8;
        j=10;
        m=++i+j++;
        return 0;
}
运行上述代码
我算的结果是19
但得到的结果是10
请问各位大神这是为什么

永恒的蓝色梦想 发表于 2020-5-30 15:37:43

未定义行为,得多少都不奇怪。

巨兔12138 发表于 2020-5-30 15:42:16

永恒的蓝色梦想 发表于 2020-5-30 15:37
未定义行为,得多少都不奇怪。

麻烦能稍微再详细解释一下吗,什么叫未定义行为啊

巨兔12138 发表于 2020-5-30 15:50:39

永恒的蓝色梦想 发表于 2020-5-30 15:37
未定义行为,得多少都不奇怪。

#include<iostream>
using namespace std;
int main()
{
      int i,j,m;
      i=8;
      j=10;
      m=++i+j++;
      cout<<m<<endl;
      return 0;
}
不好意思,上面的代码错了,这个代码是正确的,您能给解释一下为什么输出的m的结果是10吗

永恒的蓝色梦想 发表于 2020-5-30 15:56:29

巨兔12138 发表于 2020-5-30 15:50
不好意思,上面的代码错了,这个代码是正确的,您能给解释一下为什么输出的m的结果是10吗

跟你说了未定义行为,我这得的 19。

永恒的蓝色梦想 发表于 2020-5-30 16:04:12

巨兔12138 发表于 2020-5-30 15:42
麻烦能稍微再详细解释一下吗,什么叫未定义行为啊

就是得什么看命/看编译器的行为。
页: [1]
查看完整版本: 自增、自减运算符问题