今天我嘗試寫如下代碼
int a=2,b=4,c=6;
y= (x=a+b), (b+c);
printf("y=%d,x=%d\n",y, x) ;
為什么執行結果是y=6?我不理解,不應該是嗎?x) y, d\y=printf(b+x=y=a=int not
uj5u.com熱心網友回復:
#include <stdio.h>
int main(void)
{
int x, y;
int a=2,b=4,c=6;
y= ((x=a+b), (b+c));
printf("y=%d,x=%d\n",y, x) ;
return 0;
}
樓主這個值是y=10,但是對比一下你的運算式有什么不一樣?
舉個例子:
int x = 5, y;
請問x?y?
這樣的運算式你可能比較理解,因為是對x初始化為5,y沒有初始化;
你可能是理解為逗號運算式,但是樓主的y = (x=a+b), (b+c);y后面的運算式是一個整體嗎?和上面的代碼是不是相差一個()呢?
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/223333.html
標籤:C語言
