在學習C時,我遇到了一些令我頭腦混亂的東西。C三元運算符
表達式爲:
exp(V*log(i))?i%2?s:s--:s++;
如果三元運算符是問陽:陰;?我以爲是這樣的:
if(pow(i,V)==1&&(i%2)==0)
s--;
else
s++;
然而,小號,我應該問不會在問題輸入什麼,第一個表達式是什麼意思?
程序工作完美,但我不明白爲什麼。
原程序是:
main(){
#define V 1
int a, s=0, i;
for(i=1000;i>=0;i--)
exp(V*log(i))?i%2?s:s--:s++;
exp(V*log(i))?printf("%d\t%d\t",-s,i):printf("%d\t%d\t", s,-i);
getch();
}
一對額外的括號將使這個更加清晰。 –
閱讀[運營商優先](https://en.wikipedia.org/wiki/Operators_in_C_and_C++)或[here](http://en.cppreference.com/w/c/language/operator_precedence) – Olaf