可能重複:
C comma operator奇怪的變量賦值
我碰到一個行的代碼,我無法理解。我記得在某個地方看到類似的東西。
int x,y,z;
x=(y=2,z=2*y,z+4);
我知道分配給x的值是8.有人可以解釋我爲什麼嗎?
可能重複:
C comma operator奇怪的變量賦值
我碰到一個行的代碼,我無法理解。我記得在某個地方看到類似的東西。
int x,y,z;
x=(y=2,z=2*y,z+4);
我知道分配給x的值是8.有人可以解釋我爲什麼嗎?
逗號運算符分隔先前的值,並且逗號的最後一項作爲結果返回,例如,
a = b,c
將c的值分配給a。這裏的括號基本上什麼都不做,順便說一句
所以,你有兩個賦值,然後語句,其結果被返回和你在哪裏遇到這行代碼分配給X
? –
@Oli:可能在一個「笨拙的C代碼」或「這就是爲什麼我愛Java的網站上,因爲你不能做這種無法理解的C代碼之類的奇怪事情。 –