相关疑难解决方法(0)

C和C++中+ =的结果是什么?

我有以下代码:

#include <stdio.h>
int main(int argc, char **argv) {
    int i = 0;
    (i+=10)+=10;
    printf("i = %d\n", i);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

如果我尝试使用gcc将其编译为C源代码,则会出现错误:

error: lvalue required as left operand of assignment
Run Code Online (Sandbox Code Playgroud)

但是,如果我使用g ++将其编译为C++源代码,我将得到没有错误,当我运行可执行文件时:

i = 20
Run Code Online (Sandbox Code Playgroud)

为什么不同的行为?

c c++

92
推荐指数
2
解决办法
7192
查看次数

标签 统计

c ×1

c++ ×1