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
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP