这是一个正确的 C 程序吗?

Maz*_*ino -3 c

#include <stdio.h>

int main() {
    int a,b;
    a = -3--3;
    b = -3--(-3);
    printf("a=%d b=%d", a,b);
}

Run Code Online (Sandbox Code Playgroud)

这个程序是给我们的一个任务,用于寻找输出。但它显示 expression is not assignable

但是,我的其他同学得到了输出。

a = 0, b = -6
Run Code Online (Sandbox Code Playgroud)

我不明白这是怎么回事,因为我觉得这个程序不对。

its*_*DV7 8

我猜这只是你的操作员间隔的问题:

#include <stdio.h>

int main() {
    int a,b;
    a = -3 - -3;
    b = -3 - -(-3);
    printf("a=%d b=%d", a,b);
}
Run Code Online (Sandbox Code Playgroud)

这给出了您想要的输出:

a = 0, b = -6
Run Code Online (Sandbox Code Playgroud)

--你的代码被认为是一个递减操作,而不是负号