Computer >> 컴퓨터 >  >> 프로그램 작성 >> C 프로그래밍

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