C++의 연산자 우선 순위 및 연관성

Muhammad Husnain 2024년2월15일
  1. C++의 연산자
  2. C++의 연산자 우선 순위 및 연관성
  3. C++ 표현식의 암시적 유형 변환
C++의 연산자 우선 순위 및 연관성

이 문서에서는 C++의 연산자와 식에서 사용될 때 연산자가 평가되는 방법에 대해 설명합니다. 조작에 대한 특정 규칙이 있으므로 C++ 연산자를 사용한 표현식 평가에 대해 알아보기 위해 이를 살펴보겠습니다.

C++의 연산자

연산자는 변수와 값을 조작하는 데 사용되는 기호입니다. 예를 들어 +- 연산자는 더하기 및 빼기에 사용됩니다.

C++에서 연산자는 4가지 범주로 세분됩니다.

  1. 산술 연산자
  2. 할당 연산자
  3. 관계 연산자
  4. 논리 연산자

산술 연산자

이러한 연산자는 일부 데이터에 대해 다른 산술 연산을 수행하는 데 사용됩니다. 예를 들어 *는 두 개 이상의 숫자 또는 변수를 곱하는 데 사용됩니다.

수많은 산술 연산자가 아래에 나열되어 있습니다.

연산자 기호 설명
+ 더하기 연산자
- 빼기 연산자
* 곱하기 연산자
/ 나눗셈 연산자
% 모듈러스 연산자 (나누기 연산 후 나머지)

할당 연산자

이러한 연산자는 특정 값을 변수에 할당할 수 있습니다. =는 대입 연산자입니다. 아래 예를 고려하십시오.

int a;
a = 5;

여기서 a에는 할당 연산자 =를 사용하여 5 값이 할당됩니다. 아래에 나열된 다른 할당 연산자도 있습니다.

운영자 동등한 진술
a += 5 a = +5
a -= 5 a = a-5
a *= 5 a = a*5
a /= 5 a = a /5
%= 5 a = a%5

관계 연산자

관계 연산자는 2개의 값 또는 피연산자를 비교하는 데 사용됩니다. 관계가 참으로 평가되면 1 값을 반환하고 거짓으로 평가되면 0을 반환합니다.

C++에서는 여러 관계 연산자가 사용됩니다.

운영자 설명
<, > 보다 큼 및 보다 작음
<=, >= 작거나 같음, 크거나 같음
== 같음
!= 같지 않음

논리 연산자

논리 연산자는 식이 참인지 거짓인지 평가할 수 있습니다. true인 경우 반환된 결과는 1입니다. 그렇지 않으면 0.

다음과 같은 여러 논리 연산자가 있습니다.

연산자 설명
&& AND 연산자. 모든 식이 참이면 을 반환합니다.
`
! 연산자가 아닙니다. 표현식이 거짓이면 true를 반환합니다.

C++의 연산자 우선 순위 및 연관성

둘 이상의 연산자가 있는 표현식이 있는 경우 표현식은 연산자의 우선 순위에 따라 평가됩니다. 우선 순위는 연산자의 우선 순위와 먼저 평가되는 연산자를 정의합니다.

아래 예를 고려하십시오.

a = 3 * 5 / 2 + 3

이제 이 표현식에서 어떤 연산자를 먼저 조작할 것인지는 연산자의 우선 순위에 따라 결정됩니다.

연산자 우선 순위 목록은 아래 표에 나와 있습니다.

연산자 우선 순위

이제 특정 연산자가 동일한 우선 순위 수준을 갖는 것을 볼 수 있습니다. 동일한 우선 순위 수준을 가진 이러한 연산자가 있는 식은 결합성 규칙을 사용하여 평가됩니다.

연관성은 동일한 우선 순위 수준에서 평가할 연산자의 순서를 정의합니다. 다음은 연산자의 연관성을 설명하는 표입니다.

연산자 연관성

C++ 표현식의 암시적 유형 변환

식에 혼합 유형 변수가 있는 경우 컴파일러는 연산 및 피연산자의 데이터 유형에 따라 자동으로 유형 변환을 수행합니다. 예를 들어 다음 코드 스니펫을 고려하십시오.

int a = 2, b = 3, c = 5;
double f = 4.5;
double res = a + b / f + c;

코드의 마지막 줄에서 세 개의 변수가 int 유형이고 하나는 double 유형임을 알 수 있습니다. 연산자 우선 순위에 따라 /가 가장 먼저 평가됩니다. 이 식에서 b/f는 int를 double로 나눈 결과가 double로 변환됨을 의미합니다.

그 후 +는 int 및 double에 대해 평가되므로 결과는 double로 변환됩니다. 따라서 res는 이중 데이터 유형이 됩니다.

여기에서 표현식의 결과가 항상 표현식에 포함된 더 높은 데이터 유형으로 승격되는 것을 볼 수 있습니다.

int + double = > double + double = double int* double =
                   > double* double = double double* int =
                       > double* double = double int / double =
                                              > double / double =
                                                  double double / int =
                                                      > double / double =
                                                          double int / int = int

혼합 유형 표현식의 경우 유형이 더 높은 데이터 유형으로 승격되는 방식을 위의 표현식에서 볼 수 있습니다.

Muhammad Husnain avatar Muhammad Husnain avatar

Husnain is a professional Software Engineer and a researcher who loves to learn, build, write, and teach. Having worked various jobs in the IT industry, he especially enjoys finding ways to express complex ideas in simple ways through his content. In his free time, Husnain unwinds by thinking about tech fiction to solve problems around him.

LinkedIn

관련 문장 - C++ Operator