#include<stdio.h>
#include<stdlib.h>
int main() {
int x = 5;
int y = 0;
x++, y = x*x;
printf("x is %d\n", x);
printf("y is %d\n", y);
}
問: 爲什麼上面的代碼的輸出是:的逗號操作符用法在C
x is 6
y is 36
代替
x is 6
y is 25
?
推理: 我想應該是後者,因爲賦值運算符比逗號更高的優先級,因此首先分配到y
要發生它設置爲25
然後x
應該進行評估,並設置爲6
。
請參見[什麼逗號操作符' ,'在C做?](http://stackoverflow.com/a/18444099/1708801) –
爲什麼寫代碼,你不確定它會做什麼? –
是什麼讓你認爲優先順序與評估順序有關?他們是完全不同的東西。 –