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