#include <stdio.h>
int main()
{
int a,b;
a=-3--25;
b=-3--(-3);
printf("a=%d b=%d\n",a,b);
return 0;
}
在这个程序中,我认为一切都很好但是在构建时我得到了错误
[|5|error: expected ';' before numeric constant|.
]我不知道这个程序有什么问题。
答案 0 :(得分:5)
--
是递减运算符。您不能将减量运算符应用于数字常量,因为它更改它应用的内容。那是
--a;
更改 a
的值。因此--3
无效,您无法更改常量。
如果你想减去一个负数,你需要在减号运算符-
和否定运算符-
之间留一个空格,或者在被否定的东西周围()
:
a = -3 - -25;
b = -3 - -(-3);
另外,请注意-(-3)
是一种冗长的方式来撰写3
。
一般来说,空格和空行不是敌人。在操作员周围放置空格,明智地使用空行,通常可以提高可读性。
#include<stdio.h>
int main()
{
int a, b;
a = -3 - -25;
b = -3 - -(-3);
printf("a = %d, b = %d\n", a, b);
return 0;
}
答案 1 :(得分:0)
在-
符号之间放置一些空格,让编译器知道您只想使用一元和二进制-
,而不是递减运算符--
。
a= -3 - -25;
b= -3 - -(-3);
由于--
是递减运算符,因此编译器不会将a= -3--25;
转换为a= -3 - -25;