考虑:
int a;
a = -3--3;
printf("%d", a);
Run Code Online (Sandbox Code Playgroud)
第二行(a = -3--3)产生编译时错误.
添加一对额外的括号如下:
int a;
a = -3 - (-3);
printf("%d", a);
Run Code Online (Sandbox Code Playgroud)
错误消失了.
由于括号删除了错误,我相信一些歧义必定导致它.
但我不明白为什么编译器会混淆.我尝试减去-3从-3.
所有帮助表示赞赏.