C/C++ 中逗號運算子的問題?


C/C++ 程式語言中的逗號運算子有兩個上下文 -

  • 作為分隔符 -

  • 作為運算子 - 逗號運算子 { , } 是一個二進位制運算子,用於丟棄第一個表示式(經過求值),然後使用第二個表示式的值。此運算子優先順序最低。

考慮以下程式碼,並猜測輸出 -

示例

 線上演示

#include <stdio.h>
int main(void) {
   char ch = 'a', 'b', 'c';
   printf("%c", ch);
   return 0;
}

輸出

它會引發錯誤,因為它作為分隔符工作。

prog.c: In function ‘main’:
prog.c:5:20: error: expected identifier or ‘(’ before 'b'
char ch = 'a', 'b', 'c';
^~~

示例

 線上演示

#include <stdio.h>
int main(void) {
   char ch;
   ch = 'a','b','c';
   printf("%c", ch);
   return 0;
}

輸出

它會輸出 a,因為它在工作,因為“,” 作為運算子工作,但它的優先順序低於賦值運算子,因此輸出為 a。

a

示例

 線上演示

#include <stdio.h>
int f1() {
   return 43;
}
int f2() {
   return 123 ;
}
int main(void) {
   int a;
   a = (f1() , f2());
   printf("%d", a);
   return 0;
}

輸出

它會輸出 123,因為“,” 作為運算子工作,並且在大括號中,它會工作並求值第二個表示式並給出輸出。

123

更新於: 2019-7-30

215 次瀏覽

開啟你的 職業生涯

完成課程,即可獲得認證

開始
廣告
© . All rights reserved.