#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|.
]我不知道這個程序有什麼問題。爲什麼編譯器抱怨減去負數?
#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|.
]我不知道這個程序有什麼問題。爲什麼編譯器抱怨減去負數?
--
是遞減運算符。您不能將遞減運算符應用於數字常量,因爲它更改了它應用於的內容。也就是說
--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;
}
廣場-
標誌,讓編譯器之間有一些空格知道,你只需要使用一元和二元-
,不遞減操作--
。
a= -3 - -25;
b= -3 - -(-3);
由於--
是遞減運算符,以便a= -3--25;
不是由編譯器變換爲a= -3 - -25;
中查找[ '最大適合'](http://en.wikipedia.org/wiki/Maximal_munch)規則。 –
這個問題的標題不是信息恕我直言。 – user2672165
@ user2672165:我相信重寫會更好。 –