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
示例
#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