C語言中的逗號表示式,c語言中逗號指的是什麼意思?

時間 2021-09-11 22:33:34

1樓:淡依美沙楚

(x=a+b),(b+c) 是一個逗號表示式,整個表示式的值為最後一個式子的值,但是逗號表示式要從左向右計算,這個等價於

(x=2+4),(b+c)

===>

6,(4+6)

====>

6,10

即表示式值為10

把10賦值給y

,則y的值就是10

2樓:裴水藍賓木

逗號表示式,按從左到右順序進行,先計算a=3*5,再計算a*4,然後a+5,但是最後把

a+5賦值給y。所以

a=3*5=15,

a+5=20,所以最後y=a+5=20

a=3*5,a*4,a+5;

","逗號運算子優先順序最低,比賦值還要低,所以先計算a=3*5,再計算a*4,最後a+5,可見

a的值就是3*5,與後面無關啊。所以結果是15!!多看書

3樓:柏修敏瞿珠

第一個中a*4之後,這個20沒有賦值給a,所以此時a仍然為15,y值為15+5,為20

你應該寫成a=a*4,就能夠得到65了

第二個,a的值只是3*5,後面的乘和加都沒直接賦值到a上去

c語言中逗號指的是什麼意思?

4樓:肥仙女

c語言中的逗號有兩種意思:

1、表示"分隔號"的意思,就和語文中的逗號一個意思;

2、表示"逗號運算子"的意思,用它將2個表示式連線起來.例如:

3+5,6+8:就稱為逗號表示式,又稱為"順序求值運算子"。逗號表示式的一般形式為表示式1,表示式2。

逗號表示式的求解過程是:先求解表示式1,再求解表示式2。整個逗號表示式的值是表示式2的值。例如:上面的表示式"3+5,6+8"的值是14。

擴充套件資料:

運算子號:

位元右移(>>)運算子可以是算術(左端補最高有效位)或是邏輯(左端補 0)位移。例如,將 11100011 右移 3 位元,算術右移後成為 11111100,邏輯右移則為 00011100。

因算術位元右移較適於處理帶負號整數,所以幾乎所有的編譯器都是算術位元右移。

運算子的優先順序從高到低大致是:單目運算子、算術運算子、關係運算子、邏輯運算子、條件運算子、賦值運算子(=)和逗號運算子。

資料型別:

c的資料型別包括:整型、字元型、實型或浮點型(單精度和雙精度)、列舉型別、陣列型別、結構體型別、共用體型別、指標型別和空型別。

常量與變數:

常量其值不可改變,符號常量名通常用大寫。變數是以某識別符號為名字,其值可以改變的量。

識別符號是以字母或下劃線開頭的一串由字母、數字或下劃線構成的序列,請注意第一個字元必須為字母或下劃線,否則為不合法的變數名。變數在編譯時為其分配相應儲存單元。

陣列:如果一個變數名後面跟著一個有數字的中括號,這個宣告就是陣列宣告。字串也是一種陣列。

它們以ascii的null作為陣列的結束。要特別注意的是,方括內的索引值是從0算起的。

5樓:匿名使用者

逗號有"分隔符"的意思,還是 "逗號運算子"

6樓:匿名使用者

分隔符的意思,表示和後面是一條語句

7樓:匿名使用者

分隔符號,優先等級15

c語言逗號表示式

8樓:來凱玉鴻德

逗號表示式的優先順序是所有運算運算子裡最低的,它又是左集合y=(x=a+b),(b+c);該等式等價於:

x=a+b;

y=x;

b+c;

而y=((x=a+b),(b+c));等價於:

x=a+b;

y=b+c;

忘採納!

9樓:哈哈呵呵你好

c語言提供一種特殊的運算子,逗號運算子,優先順序別最低,它將兩個及其以上的式子聯接起來,從左往右逐個計算表示式,整個表示式的值為最後一個表示式的值。如:(3+5,6+8)稱為逗號表示式,其求解過程先表示式1,後表示式2,整個表示式值是表示式2的值,如:

(3+5,6+8)的值是14;a=(a=3*5,a*4)的值是60,其中(a=3*5,a*4)的值是60, a的值在逗號表示式裡一直是15,最後被逗號表示式賦值為60,a的值最終為60。

所以你的那個a是15,然後a+15等於30。

10樓:了本命年

賈政長女賈元春加封賢德妃,皇帝恩准省親。榮國府為了迎接這大典,修建極盡奢華的大觀園,又採辦女伶、女尼、女道士,出身世家、因病入空門的妙玉也進榮府。元宵夜,元春回孃家待了一會兒,要寶玉和眾姐妹獻詩。

寶玉和黛玉兩小無猜,情意綿綿。書童茗煙將《西廂記》等書偷進園給寶玉,寶玉和黛玉一同欣賞。寶玉庶弟賈環嫉妒寶玉,抄寫經書時裝失手弄倒蠟燭燙傷寶玉,王夫人大罵趙姨娘。

趙姨娘又深恨鳳姐,便請馬道婆施魔法,讓鳳姐、寶玉中邪。癩和尚、跛道人擦拭通靈玉、救好二人。

c語言中逗號運算子的功能和使用方法

11樓:匿名使用者

一、用法:

1、當順序點用,結合順序是從左至右,用來順序求值,完畢之後整個表示式的值是最後一個表示式的值。

main()

先算括號內的值: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;

擴充套件資料

運算子優先順序:

1、優先順序從上到下依次遞減,最上面具有最高的優先順序,逗號操作符具有最低的優先順序。

2、相同優先順序中,按結合順序計算。大多數運算是從左至右計算,只有三個優先順序是從右至左結合的,它們是單目運算子、條件運算子、賦值運算子。

3、基本的優先順序需要記住:指標最優,單目運算優於雙目運算。如正負號。

先算術運算,後移位運算,最後位運算。請特別注意:1 << 3 + 2 && 7等價於 (1 << (3 + 2))&&7.

邏輯運算最後計算。

12樓:平常心隨緣

c 語言中,逗號(,)也可以是運算子,稱為逗號運算子(comma operator)。逗號運算子可以把兩個以上(包含兩個)的表示式連線成一個表示式,稱為逗號表示式。其一般形式為:

子表示式1, 子表示式2, ..., 子表示式n例如:a + b, c = b, c++

逗號運算子的優先順序是所有運算子中級別最低的,通常配合 for 迴圈使用。逗號表示式最右邊的子表示式的值即為逗號表示式的值。上例中,c++ 的值(c 自增之前的值)即為該表示式的值。

逗號運算子保證左邊的子表示式運算結束後才進行右邊的子表示式的運算。也就是說,逗號運算子是一個序列點,其左邊所有***都結束後,才對其右邊的子表示式進行運算。因此,上例中,c 得到 b 的值後,才進行自增運算。

c語言中逗號運算子怎麼用?

13樓:匿名使用者

一、用法:

1、當順序點用,結合順序是從左至右,用來順序求值,完畢之後整個表示式的值是最後一個表示式的值。

main()

先算括號內的值: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;

擴充套件資料

運算子優先順序:

1、優先順序從上到下依次遞減,最上面具有最高的優先順序,逗號操作符具有最低的優先順序。

2、相同優先順序中,按結合順序計算。大多數運算是從左至右計算,只有三個優先順序是從右至左結合的,它們是單目運算子、條件運算子、賦值運算子。

3、基本的優先順序需要記住:指標最優,單目運算優於雙目運算。如正負號。

先算術運算,後移位運算,最後位運算。請特別注意:1 << 3 + 2 && 7等價於 (1 << (3 + 2))&&7.

邏輯運算最後計算。

14樓:次次次蛋黃米亞

在c語言中,多

個表示式可以用逗號分開,其中用逗號分開的表示式的值分別結算,但整個表示式的值是最後一個表示式的值。

具體用法:

假設b=2,c=7,d=5,

a1=(++b,c--,d+3);

a2=++b,c--,d+3;

對於第一行**,有三個表示式,用逗號分開,所以最終的值應該是最後一個表示式的值,也就是d+3,為8,所以a1=8。

對於第二行**,那麼也是有三個表示式,這時的三個表示式為a2=++b、c--、d+3,(這是因為賦值運算子比逗號運算子優先順序高),所以最終表示式的值雖然為d+3,為8,但a2=3。

注意:逗號運算的結合性是從左至右,完畢之後整個表示式的值是最後一個表示式的值。

假設:int a,x=2,y=5;

(1)a[1]=(x+3,y++,x++);那麼最終結果是:a[1]=2 x=3 y=6; )

(2)a[2]=(x++,x+3,x+7);那麼最終結果是:a[2]=10 x=4;

15樓:天雲一號

逗號運算子( , )是c語言運算子中優先順序最低的一種運算子,結合順序是從左至右,用來順序求值(最後一個逗號後面表示式的值作為整個表示式的值)。

下面舉例說明逗號運算子的使用方法:

int a=3, b=5, c;

c = a>b, a+b;   // 執行後c值為0,因為逗號運算子的優先順序低於賦值運算子,所以先將a>b的結果(為0)賦值給c,之後運算a+b(結果不儲存),所以c=0

c = (a>b, a+b); // 執行後c值為8,因為括號的優先順序高於賦值運算子,所以先算括號內的表示式,此時計算結果為最後一個表示式的值,即a+b的值,所以c=8

16樓:匿名使用者

2樓說的很詳細了 ,逗號運算子

的作用是將若干表示式連線起來。它的優先順序別在所有運算子中是最低的,結合方向是"自左至右"的。其值是最後一個表示式的,其間所有的都要計算,你所說的 a=12+(s+2,d+4); 先算s+2.

的4,然後算d+4,最後逗號表達是式的值是d+4=7,整個表示式的值是12+7=19,

17樓:匿名使用者

回答zw791:

括號運算子的結果是取括號內最右邊表示式的結果.

d+4=7,12+7=19

C語言逗號表示式,C語言中逗號運算子怎麼用

int main 結果 value 8逗號表示式從左往右計算。但返回右邊的資料值作為表示式值 1.k 3 2 k 6 2.6,k 4 表示式返回10,k仍為63.10,k 2 k為6,表示式返回8。依靠非常全面的運算子和多樣的資料型別,可以輕易完成各種資料結構的構建,通過指標型別更可對記憶體直接定址...

c語言中templtlt8表示式是啥意思

是個 複合符號 相當於先移位置,再賦值,跟temp 8結果是一樣的。 計算機中是以byte為基本單位的。每個byte由8個bit組成,每個bit由值0或1 2進位制 一個字 16 位的是2個byte,32位的字為4個byte.你看的例子中u32表示 unsigined int32 32位的無符號整型...

在c 語言中,表示式(212)的值是什麼

程式猿3號 是按位異或的運算。21 的二進位制 10101 2 的二進位制 00010 結果是 10111 也就是十進位制的23。 小靖鍋鍋 c 中 表示按位異或 按位或 按位與 如果需要計算先將之轉換成二進位制 如此題中 21 2 二進位制10101 10 10111 十進位制23 值為23 你可...