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.