Ⅰ c語言中逗號運算符是從左向右算,還是從右向左算啊
int a ;
a = 2 * 3, 4 * 5;
首先計算2*3,結果是6
接著計算a = 6(因=優先順序大於,)
接下來計算4*5,結果是20
20是整個逗號表達式的值
-------------------------
由左向右運行,最後的表達式的值是整個逗號表達式的值
Ⅱ C語言逗號運算符
先算a=2,a的值為2;算b=5,b的值為5, 算a++,a的值為3,算b++,b的值為6,算a+b,結果為9,整個都好表達式的結果為9
Ⅲ C語言中逗號運算符是從左至右
掌握了以下4點,逗號表達式的運用就不是問題了: 1、逗號表達式格式:表達式1,(表達式2,表達式3,... 表達式n) 2、逗號表達式的計算過程為:從左往右逐個計算。 3、逗號表達式是作為一個整體的,它的最終結果就是最後一個表達式(即表達式n)的值。 4、逗號運算符的優先順序別是所有運算符中最低的。
Ⅳ 關於c語言中的逗號運算符
等下。。答錯了。。還需要理解一下神馬是逗號表達式。。我前面說的和uuyyhhjj與delta_charlie的意思一樣,但其實我們都搞錯了。你可以自己把我們的例子都運行一下,看看是不是這樣。下面我感覺應該是我正確的理解。
逗號表達式是所有運算符中優先順序最低的,比賦值運算符還要低。他的作用就是把每個表達式都算一遍,並且把最後一個表達式返回的值作為逗號表達式的值。(把其他的都不管了)
像你說的那個,如果是
x=200,500;
(沒有括弧),x就會等於200,然後上面整個式子的值是500。
但是有括弧的話, (200,500) 就是一個單獨的式子,他的值是500,所以x=(200,500)最後賦值給x就是500
舉幾個例子,
x=(21,22,23,24,25);
這個裡面,先算括弧里的,前面的21到24算過後都被丟棄,括弧里的表達式的值是25。之後執行賦值運算,x的值就變成括弧里表達式的值,25了。
如果編譯
int x;
int a;
x=(21,22,23,24,25);
cout<<"x="<<x<<endl;
會輸出
x=25
x=21,22,23,24,25;
這行整個是一個表達式。
逗號運算符會分別計算表達式x=21、22、23 、24、25(單獨一個數字也可以叫做表達式)。
然後他會用最後一個表達式作為逗號表達式的值。所以整個式子(整個一行)的值是25。但是因為這個值並沒有返回給別的變數,他就也被丟棄了。
如果編譯
int x;
x=21,22,23,24,25;
cout<<x;
輸出是21。
a=(x=21,22,23,24,25);
這個裡面,除了給x賦值,它又把逗號表達式的值25賦給a。
如果編譯
int x;
int a;
a=(x=21,22,23,24,25);
cout<<"x="<<x<<endl;
cout<<"a="<<a<<endl;
會輸出
x=21
a=25
a=(x=21,22,23,24,x*25);這個里,賦值給x之後又利用x計算了逗號表達式的值,21*25,最後把這個值賦給a
如果編譯
int x;
int a;
a=(x=21,22,23,24,x*25);
cout<<"x="<<x<<endl;
cout<<"a="<<a<<endl;
會輸出
x=21
a=525
簡單來說,逗號的作用就是執行每一個表達式,然後用最後一個表達式作為他它的值。
看這個可能可以幫助你理解 http://blog.csdn.net/great_ghoul/article/details/1779768
如有疑問,歡迎您的追問。
Ⅳ c語言 逗號運算符
表達式
A,B
的值是B
所以
(x=8*2,x*4),x*2
的值是x*2
而計算過程是先算
(x=8*2,x*4)
完成之後,x=16,整個(x=8*2,x*4)的值是x*4也就是64
之後再計算x*2,由於 x=16,所以x*2=32
於是,整個表達式的值是32,x的值是16
Ⅵ c語言中逗號指的是什麼意思
C語言中的逗號有兩種意思:
1、表示"分隔號"的意思,就和語文中的逗號一個意思;
2、表示"逗號運算符"的意思,用它將2個表達式連接起來.例如:
3+5,6+8:就稱為逗號表達式,又稱為"順序求值運算符"。逗號表達式的一般形式為表達式1,表達式2。
逗號表達式的求解過程是:先求解表達式1,再求解表達式2。整個逗號表達式的值是表達式2的值。例如:上面的表達式"3+5,6+8"的值是14。
(6)c語言逗號從哪裡算擴展閱讀:
運算符號:
比特右移(>>)運算符可以是算術(左端補最高有效位)或是邏輯(左端補 0)位移。例如,將 11100011 右移 3 比特,算術右移後成為 11111100,邏輯右移則為 00011100。
因算術比特右移較適於處理帶負號整數,所以幾乎所有的編譯器都是算術比特右移。
運算符的優先順序從高到低大致是:單目運算符、算術運算符、關系運算符、邏輯運算符、條件運算符、賦值運算符(=)和逗號運算符。
數據類型:
C的數據類型包括:整型、字元型、實型或浮點型(單精度和雙精度)、枚舉類型、數組類型、結構體類型、共用體類型、指針類型和空類型。
常量與變數:
常量其值不可改變,符號常量名通常用大寫。變數是以某標識符為名字,其值可以改變的量。
標識符是以字母或下劃線開頭的一串由字母、數字或下劃線構成的序列,請注意第一個字元必須為字母或下劃線,否則為不合法的變數名。變數在編譯時為其分配相應存儲單元。
數組:
如果一個變數名後面跟著一個有數字的中括弧,這個聲明就是數組聲明。字元串也是一種數組。它們以ASCII的NULL作為數組的結束。要特別注意的是,方括內的索引值是從0算起的。
網路-C語言
Ⅶ c語言中逗號運算符
逗號表達式的含義是,整個式子的值 等於 逗號表達式中的最後一個表達式的值。
Ⅷ C語言里的逗號的使用方法
C語言提供一種特殊放入運算符:逗號運算符
表達式1,表達式2
逗號表達式的求解過程是:
先求表達式1,再求表達式2
整個逗號表達式的值是表達式2的值,如表達式「3+5,6+8」的值為14。又如,逗號表達式「a=3*5,a*4」,賦值運算符的優先順序別高於逗號運算符,因此應先求解a=3*5.經計算和賦值後得到a的值為15,然後求解a*4,得60,整個逗號表達式的值為60。
(8)c語言逗號從哪裡算擴展閱讀:
逗號運算
例子:
int a1,a2,b=2,c=7,d=5; // 第1行
a1=(++b,c--,d+3); // 第2行
a2=++b,c--,d+3; //第3行
對於給a1賦值的代碼,有三個表達式,用逗號分開,所以最終的值應該是最後一個表達式的值,也就是(d+3)的值,為8,所以a1的值為8。
Ⅸ C語言中逗號運算符怎麼用
一、用法:
1、當順序點用,結合順序是從左至右,用來順序求值,完畢之後整個表達式的值是最後一個表達式的值。
main()
{int a,s,d;
s=2;
d=3;
a=12+(s+2,d+4);
}
先算括弧內的值:s+2=4,d+4=7;括弧內應為(4,7),括弧內取值只取最後一個,如果沒有括弧則取第一個;a=12+7=19。
x=(y=3,(z = ++y+2) +5);
是首先把y賦值為3,把y遞增為4,然後把4加上2,把結果6賦值給z,接下來把z加5最後把x賦為結果值11。
2、注意事項:逗號運算符(,)是C語言運算符中優先順序最低的一種運算符。
二、其它用法:
1、在for裡面的應用:
int i;int j;
for(i=0,j=0;i<5;i++,j++)
2、當分隔符:int i,j;
(9)c語言逗號從哪裡算擴展閱讀
運算符優先順序:
1、優先順序從上到下依次遞減,最上面具有最高的優先順序,逗號操作符具有最低的優先順序。
2、相同優先順序中,按結合順序計算。大多數運算是從左至右計算,只有三個優先順序是從右至左結合的,它們是單目運算符、條件運算符、賦值運算符。
3、基本的優先順序需要記住:指針最優,單目運算優於雙目運算。如正負號。先算術運算,後移位運算,最後位運算。請特別注意:1 << 3 + 2 && 7等價於 (1 << (3 + 2))&&7.邏輯運算最後計算。
Ⅹ c語言中的逗號運算
最後a=0,b=0,c=5
先b+3
後a=b
主要是運算符優先順序問題