1樓:匿名使用者
y=((x=a+b,(b+c));可以寫成x=a+b; y=b+c;這樣你自己就會算了。逗號表示式是一種將多個語句變成一條語句的方法,只要把它還原回去就可以理解了,比如:
for ( i=0,n=0;i<5;i++ )就可以還原成:n=0; for ( i=0;i<5;i++ )這並不複雜。
還原的方法就是,每個逗號前面的東西如果是一條語句就寫成語句,用最後乙個式子賦值。
如:y=(x++,x+y,x=a+b,b--,b+c);順序寫:x++; x=a+b; b--; y=b+c;//由於x+y計算後沒有儲存結果,可以省略不寫了。
但如果是x+=y結果儲存到x就要寫。
2樓:匿名使用者
程式裡面 b+c沒有賦值,沒啥實際意義
就是 y = (x=a+b)
就這一步有意義
3樓:匿名使用者
逗號運算子是所有運算子中優先順序最低的,y=(x=a+b),(b+c);等價於(y=(x=a+b)),(b+c);
所以算出來y是等於x的,都等於a+b=6;
4樓:我是藍色阿
正確寫法
#include
void main()
你將(x=a+b)和(b+c)括起來沒用的,(x=a+b),(b+c)等價於x=a+b,b+c
你的目的是想將x=a+b,b+c這個逗號表示式的值賦給y,那就必須這樣寫y=(x=a+b,b+c);
你這樣寫y=(x=a+b),(b+c);意思就不一樣了,計算機就將y=(x=a+b)當成表示式1,(b+c)當成表示式2
這樣的話,按優先順序計算機就會先算x=a+b,這時候x變數下儲存的值就是6,然後計算y=x,此時y變數下儲存的值就是6,最後計算b+c得10,也就是整個逗號表示式的值是10
因此你那個程式輸出結果都是6
希望能幫到你
5樓:匿名使用者
你也許應該這樣寫: y = ( (x = a + b), (b + c) );
6樓:匿名使用者
逗號運算子的優先順序要低於賦值運算子
C語言運算子C語言運算子是怎麼運算的
內容來自使用者 wjian178 e68a84e8a2ad62616964757a686964616f31333433646432 1級優先順序 左結合 圓括號 下標運算子 指向結構體成員運算子 結構體成員運算子。2級優先順序 右結合 邏輯非運算子 按位取反運算子 字首增量運算子 字首減量運算子 正...
c語言(冪)運算子,C語言 (冪)運算子
運算子是 按位異或 1 異或是乙個數 算符。他應用於邏輯運算。2 例如 真異或假的結果是真,假異或真的結果也是真,真異或真的結果是假,假異或假的結果是假。就是說兩個值不相同,則異或結果為真。反之,為假。3 在計算機應用中,普遍運用,異或的邏輯符號 shift 6 形象表示為 真 假 真 假 真 真 ...
c語言運算子中問號是什麼意思C語言運算子中問號是什麼意思
問號是條件運算子的意思,跟冒號組合使用。條件運算子優先順序高於賦值 逗號運算子,低於其他運算子。表示式為 表示式1?表示式2 表示式3。先求解表示式1,若其值為真 非0 則將表示式2的值作為整個表示式的取值,否則 表示式1的值為0 將表示式3的值作為整個表示式的取值。擴充套件資料條件運算子具有右結合...