찾다
  • 로그인
  • 가입
비밀번호 재설정 성공

당신이 관심을 갖고 있는 프로젝트를 팔로우하고 그들에 관한 최신 뉴스를 맛보세요

C++ 연산자

수집 154
읽다 53379
업데이트 시간 2016-09-11

연산자는 컴파일러에게 특정 수학적 또는 논리적 연산을 수행하도록 지시하는 기호입니다. C++에는 풍부한 내장 연산자가 있으며 다음 유형의 연산자를 제공합니다.

  • 산술 연산자

  • 관계 연산자

  • 논리 연산자

  • 비트 연산자

  • 할당 연산자

  • 기타 연산자

이 장에서는 산술 연산자, 관계 연산자, 논리 연산자, 비트 연산자, 할당 연산자 및 기타 연산자를 하나씩 소개합니다.

산술 연산자

다음 표는 C++에서 지원하는 산술 연산자를 보여줍니다.

변수 A의 값이 10이고 변수 B의 값이 20이라고 가정하면 다음과 같습니다.

을 얻습니다.
OperatorDescriptionExample
+두 피연산자를 추가하면A + B가 됩니다. 30
- 첫 번째 피연산자에서 두 번째 피연산자 를 뺍니다. A * B는 200
/분모로 분자를 나누면B / A는 2
%모듈로 연산자, 나눗셈 후 나머지B % A는 0
++증분 연산자, 정수 값을 1A++로 11
을 얻습니다.--감소 연산자, 정수 값을 1A만큼 줄이면 9
이 됩니다.

예제

C++에서 사용할 수 있는 산술 연산자를 이해하려면 아래 예를 살펴보세요.

다음 C++ 프로그램을 test.cpp 파일에 복사하여 붙여넣고 프로그램을 컴파일하고 실행하세요.

#include <iostream>
using namespace std;
 
main()
{
   int a = 21;
   int b = 10;
   int c ;
 
   c = a + b;
   cout << "Line 1 - c 的值是 " << c << endl ;
   c = a - b;
   cout << "Line 2 - c 的值是 " << c << endl ;
   c = a * b;
   cout << "Line 3 - c 的值是 " << c << endl ;
   c = a / b;
   cout << "Line 4 - c 的值是 " << c << endl ;
   c = a % b;
   cout << "Line 5 - c 的值是 " << c << endl ;
   c = a++; 
   cout << "Line 6 - c 的值是 " << c << endl ;
   c = a--; 
   cout << "Line 7 - c 的值是 " << c << endl ;
   return 0;
}

위 코드를 컴파일하고 실행하면 다음과 같은 결과가 나옵니다.

Line 1 - c 的值是 31
Line 2 - c 的值是 11
Line 3 - c 的值是 210
Line 4 - c 的值是 2
Line 5 - c 的值是 1
Line 6 - c 的值是 21
Line 7 - c 的值是 22

관계 연산자

다음 표는 C++에서 지원하는 관계 연산자를 보여줍니다.

변수 A의 값이 10이고 변수 B의 값이 20이라고 가정하면,

OperatorDescriptionInstance
==둘의 값이 맞는지 확인하세요 피연산자가 같음, 같으면 조건은 참입니다. (A == B)는 사실이 아닙니다.
!= 두 피연산자의 값이 같은지 확인하고, 그렇지 않으면 조건이 true인지 확인합니다. (A != B)는 사실입니다.
> 왼쪽 피연산자의 값이 오른쪽 피연산자의 값보다 큰지 확인하고, 그렇다면 조건이 true입니다. (A>B)는 사실이 아닙니다.
< 왼쪽 피연산자의 값이 오른쪽 피연산자의 값보다 작은지 확인하고, 그렇다면 조건은 true입니다. (A < B)는 참입니다.
>= 왼쪽 피연산자의 값이 오른쪽 피연산자의 값보다 크거나 같은지 확인하고, 그렇다면 조건이 true입니다. (A >= B)는 사실이 아닙니다.
<=왼쪽 피연산자의 값이 오른쪽 피연산자의 값보다 작거나 같은지 확인하고, 그렇다면 조건이 true입니다. (A <= B)는 참입니다.

예제

C++에서 사용할 수 있는 관계 연산자를 이해하려면 아래 예를 살펴보세요.

다음 C++ 프로그램을 test.cpp 파일에 복사하여 붙여넣고 프로그램을 컴파일하고 실행하세요.

#include <iostream>
using namespace std;

main()
{
   int a = 21;
   int b = 10;
   int c ;

   if( a == b )
   {
      cout << "Line 1 - a 等于 b" << endl ;
   }
   else
   {
      cout << "Line 1 - a 不等于 b" << endl ;
   }
   if ( a < b )
   {
      cout << "Line 2 - a 小于 b" << endl ;
   }
   else
   {
      cout << "Line 2 - a 不小于 b" << endl ;
   }
   if ( a > b )
   {
      cout << "Line 3 - a 大于 b" << endl ;
   }
   else
   {
      cout << "Line 3 - a 不大于 b" << endl ;
   }
   /* 改变 a 和 b 的值 */
   a = 5;
   b = 20;
   if ( a <= b )
   {
      cout << "Line 4 - a 小于或等于 b" << endl ;
   }
   if ( b >= a )
   {
      cout << "Line 5 - b 大于或等于 a" << endl ;
   }
   return 0;
}

위 코드를 컴파일하고 실행하면 다음과 같은 결과가 나옵니다.

Line 1 - a 不等于 b
Line 2 - a 不小于 b
Line 3 - a 大于 b
Line 4 - a 小于或等于 b
Line 5 - b 大于或等于 a

논리 연산자

다음 표는 C++에서 지원하는 관계형 논리 연산자를 보여줍니다.

변수 A의 값이 1이고 변수 B의 값이 0이라고 가정하면,

OperatorDescriptionInstance
&&을 논리 AND 연산자라고 합니다. 두 피연산자가 모두 0이 아니면 조건은 참입니다. (A && B)는 거짓입니다.
||을 논리 OR 연산자라고 합니다. 두 피연산자 중 하나라도 0이 아니면 조건은 참입니다. (A || B)는 사실입니다.
!을 논리 NOT 연산자라고 합니다. 피연산자의 논리적 상태를 반전시키는 데 사용됩니다. 논리 NOT 연산자는 조건이 참인 경우 거짓으로 만듭니다. !(A && B)는 사실입니다.

예제

C++에서 사용할 수 있는 논리 연산자를 이해하려면 아래 예를 살펴보세요.

다음 C++ 프로그램을 test.cpp 파일에 복사하여 붙여넣고 프로그램을 컴파일하고 실행하세요.

#include <iostream>
using namespace std;

main()
{
   int a = 5;
   int b = 20;
   int c ;

   if ( a && b )
   {
      cout << "Line 1 - 条件为真"<< endl ;
   }
   if ( a || b )
   {
      cout << "Line 2 - 条件为真"<< endl ;
   }
   /* 改变 a 和 b 的值 */
   a = 0;
   b = 10;
   if ( a && b )
   {
      cout << "Line 3 - 条件为真"<< endl ;
   }
   else
   {
      cout << "Line 4 - 条件不为真"<< endl ;
   }
   if ( !(a && b) )
   {
      cout << "Line 5 - 条件为真"<< endl ;
   }
   return 0;
}

위 코드를 컴파일하고 실행하면 다음과 같은 결과가 생성됩니다.

Line 1 - 条件为真
Line 2 - 条件为真
Line 4 - 条件不为真
Line 5 - 条件为真

Bitwise Operators

Bitwise 연산자는 비트에 대해 작동하고 비트 단위로 작업을 수행합니다. &, | 및 ^의 실제 값은 다음과 같습니다.

0011 A = 60, B = 13이고 이제 이진 형식으로 표현하면 다음과 같다고 가정합니다.
pqp & qp ^ q
00 00
1011
1110
00 11

A = 0011 1100

B = 0000 1101

---- -------------

A&B = 0000 1100

A|B = 0011 1101

A^B = 0011 0001

~A = 1100 0011

다음 표는 C++를 보여줍니다. 비트 연산자를 지원합니다. 변수 A의 값이 60이고 변수 B의 값이 13이라고 가정하면 다음과 같습니다.

Operator&|^~<<>

예제

C++에서 사용할 수 있는 비트 연산자를 이해하려면 아래 예를 살펴보세요.

다음 C++ 프로그램을 test.cpp 파일에 복사하여 붙여넣고 프로그램을 컴파일하고 실행하세요.

#include <iostream>
using namespace std;

main()
{
   unsigned int a = 60;	  // 60 = 0011 1100  
   unsigned int b = 13;	  // 13 = 0000 1101
   int c = 0;           

   c = a & b;             // 12 = 0000 1100
   cout << "Line 1 - c 的值是 " << c << endl ;

   c = a | b;             // 61 = 0011 1101
   cout << "Line 2 - c 的值是 " << c << endl ;

   c = a ^ b;             // 49 = 0011 0001
   cout << "Line 3 - c 的值是 " << c << endl ;

   c = ~a;                // -61 = 1100 0011
   cout << "Line 4 - c 的值是 " << c << endl ;

   c = a << 2;            // 240 = 1111 0000
   cout << "Line 5 - c 的值是 " << c << endl ;

   c = a >> 2;            // 15 = 0000 1111
   cout << "Line 6 - c 的值是 " << c << endl ;

   return 0;
}

위 코드를 컴파일하고 실행하면 다음과 같은 결과가 생성됩니다.

Line 1 - c 的值是 12
Line 2 - c 的值是 61
Line 3 - c 的值是 49
Line 4 - c 的值是 -61
Line 5 - c 的值是 240
Line 6 - c 的值是 15

할당 연산자

다음 표에는 C++에서 지원하는 할당 연산자가 나열되어 있습니다.

DescriptionInstance
두 피연산자에 동시에 존재하는 경우 이진 AND 연산 문자가 결과에 복사됩니다. (A & B)는 12, 즉 0000 1100을 제공합니다.
두 피연산자 중 하나에 있는 경우 이진 OR 연산자는 결과에 1비트를 복사합니다. (A | B)는 0011 1101인 61을 얻습니다.
피연산자 중 하나에만 있고 둘 다에는 없으면 이진 XOR 연산자는 결과가 진행 중입니다. (A ^ B)는 49, 즉 0011 0001
2의 보수 연산자는 비트를 "뒤집는" 효과가 있는 단항 연산자입니다. (~A )는 -61, 즉 1100 0011, 2의 보수, 부호 있는 이진수를 제공합니다.
이진 왼쪽 시프트 연산자. 왼쪽 피연산자의 값은 오른쪽 피연산자가 지정한 비트 수만큼 왼쪽으로 이동합니다. A << 2는 240을 얻으며 이는 1111 0000
이진 오른쪽 시프트 연산자입니다. 왼쪽 피연산자의 값은 오른쪽 피연산자가 지정한 비트 수만큼 오른쪽으로 이동합니다. A >> 2는 15를 얻게 되며 이는 0000 1111
에 할당합니다. 와 같습니다.
OperatorDescription Example
=간단한 할당 연산자, 오른쪽 피연산자의 값을 왼쪽 피연산자에 할당C = A + B는 A + B의 값을 C
+=덧셈 및 할당 연산자, 왼쪽 피연산자에 오른쪽 피연산자를 더한 결과를 왼쪽 피연산자에 대입 C += A 는 C = C + A
-= 빼기 대입 연산자, 오른쪽 빼기 결과를 대입 왼쪽 피연산자에서 왼쪽 피연산자로 C -= A, 이는 C = C - A
*=와 동일합니다. 곱셈 및 할당 연산자, 오른쪽 피연산자를 왼쪽으로 곱합니다. 피연산자의 결과 왼쪽 피연산자 C *= A에 할당됩니다. 이는 C = C * A
/=과 같습니다. 나누기 및 할당 연산자는 왼쪽 피연산자를 오른쪽 피연산자로 나눈 결과를 왼쪽에 할당합니다. 피연산자 C /= A는 C = C / A와 동일합니다
%= 모듈러스와 할당 연산자를 찾아 두 피연산자의 모듈러스를 찾아 왼쪽 피연산자에 할당합니다 C %= A 이는 C = C % A
<<=왼쪽 시프트 및 할당 연산자와 동일합니다.C <<= 2는 C = C << 2
> ;>= 오른쪽 시프트 및 할당 연산자C >>= 2는 C = C >> 2
&=비트 AND 및 할당 연산자C &= 2와 같습니다. C = C & 2
^=비트 배타적 OR 및 할당 연산자C ^= 2는 C = C ^ 2
|=비트 OR 및 할당 연산자C |= 2는 C = C 2
과 같습니다.

예제

C++에서 사용할 수 있는 할당 연산자에 대해 알아보려면 아래 예를 살펴보세요.

다음 C++ 프로그램을 test.cpp 파일에 복사하여 붙여넣고 프로그램을 컴파일하고 실행하세요.

#include <iostream>
using namespace std;

main()
{
   int a = 21;
   int c ;

   c =  a;
   cout << "Line 1 - =  运算符实例,c 的值 = : " <<c<< endl ;

   c +=  a;
   cout << "Line 2 - += 运算符实例,c 的值 = : " <<c<< endl ;

   c -=  a;
   cout << "Line 3 - -= 运算符实例,c 的值 = : " <<c<< endl ;

   c *=  a;
   cout << "Line 4 - *= 运算符实例,c 的值 = : " <<c<< endl ;

   c /=  a;
   cout << "Line 5 - /= 运算符实例,c 的值 = : " <<c<< endl ;

   c  = 200;
   c %=  a;
   cout << "Line 6 - %= 运算符实例,c 的值 = : " <<c<< endl ;

   c <<=  2;
   cout << "Line 7 - <<= 运算符实例,c 的值 = : " <<c<< endl ;

   c >>=  2;
   cout << "Line 8 - >>= 运算符实例,c 的值 = : " <<c<< endl ;

   c &=  2;
   cout << "Line 9 - &= 运算符实例,c 的值 = : " <<c<< endl ;

   c ^=  2;
   cout << "Line 10 - ^= 运算符实例,c 的值 = : " <<c<< endl ;

   c |=  2;
   cout << "Line 11 - |= 运算符实例,c 的值 = : " <<c<< endl ;

   return 0;
}

위 코드를 컴파일하고 실행하면 다음과 같은 결과가 생성됩니다.

Line 1 - =  运算符实例,c 的值 = 21
Line 2 - += 运算符实例,c 的值 = 42
Line 3 - -= 运算符实例,c 的值 = 21
Line 4 - *= 运算符实例,c 的值 = 441
Line 5 - /= 运算符实例,c 的值 = 21
Line 6 - %= 运算符实例,c 的值 = 11
Line 7 - <<= 运算符实例,c 的值 = 44
Line 8 - >>= 运算符实例,c 的值 = 11
Line 9 - &= 运算符实例,c 的值 = 2
Line 10 - ^= 运算符实例,c 的值 = 0
Line 11 - |= 运算符实例,c 的值 = 2

기타 연산자

다음 표에는 C++에서 지원하는 다른 중요한 연산자가 나열되어 있습니다.

OperatorDescription
sizeofsizeof 연산자는 변수의 크기를 반환합니다. 예를 들어, sizeof(a)는 4를 반환합니다. 여기서 a는 정수입니다.
조건 ? X : Y조건 연산자. 조건이 true이면 값은 X이고, 그렇지 않으면 값은 Y입니다.
,쉼표 연산자는 일련의 연산을 순차적으로 수행합니다. 전체 쉼표 표현식의 값은 쉼표로 구분된 목록의 마지막 표현식 값입니다.
.(점) 및 ->(화살표) 멤버 연산자는 클래스, 구조체 및 공용체의 멤버를 참조하는 데 사용됩니다.
Cast형변환 연산자는 한 데이터 유형을 다른 데이터 유형으로 변환합니다. 예를 들어 int(2.2000)은 2를 반환합니다.
&포인터 연산자 &는 변수의 주소를 반환합니다. 예를 들어 &a;는 변수의 실제 주소를 제공합니다.
*포인터 연산자 *는 변수를 가리킵니다. 예를 들어 *var는 변수 var를 가리킵니다.

C++의 연산자 우선순위

연산자의 우선순위에 따라 표현식의 용어 조합이 결정됩니다. 이는 표현식이 평가되는 방식에 영향을 미칩니다. 일부 연산자는 다른 연산자보다 우선순위가 높습니다. 예를 들어 곱셈 및 나눗셈 연산자는 덧셈 및 뺄셈 연산자보다 우선순위가 높습니다.

예를 들어 x = 7 + 3 * 2, 여기서 x에는 20 대신 13이라는 값이 할당됩니다. 왜냐하면 * 연산자가 +보다 우선순위가 높기 때문에 곱셈 3*2가 먼저 계산된 다음 7이 더해지기 때문입니다. .

다음 표에는 연산자 우선 순위가 높은 순서대로 나열되어 있습니다. 우선 순위가 높은 연산자는 표 위에 표시되고 우선 순위가 낮은 연산자는 표 아래에 표시됩니다. 표현식에서는 우선순위가 높은 연산자가 먼저 평가됩니다.

오른쪽에서 왼쪽으로 왼쪽에서 오른쪽으로 왼쪽에서 오른쪽 왼쪽에서 오른쪽으로 관계 <= >= 왼쪽에서 오른쪽으로 잠깐만요 == != 왼쪽에서 오른쪽으로 비트 AND AND & 왼쪽에서 오른쪽으로 비트 XOR XOR ^ 왼쪽에서 오른쪽으로 비트와이즈 OR | 왼쪽에서 오른쪽으로 논리 AND AND && 왼쪽에서 오른쪽으로 논리 OR OR || 왼쪽에서 오른쪽으로 조건? : 오른쪽에서 왼쪽으로 할당 = += -= *= /= %=>>= <<= &= ^= |= 오른쪽에서 왼쪽으로 쉼표 , 왼쪽에서 오른쪽으로 다음 C++ 프로그램을 test.cpp 파일에 복사하여 붙여넣고 프로그램을 컴파일하고 실행하세요.
카테고리 연산자 연관성
접미사 () [] -> 일달러 + - ! + - - (유형)* & sizeof
곱셈과 나눗셈 * / %
덧셈과 뺄셈 + -
Shift << >>
C++에서 연산자의 우선순위를 이해하려면 다음 예를 살펴보세요.
괄호가 있는 것과 없는 것의 차이를 비교하면 다른 결과가 나옵니다. (), /, * 및 +의 우선순위가 다르기 때문에 우선순위가 높은 연산자가 먼저 평가됩니다.

#include <iostream>
using namespace std;
 
main()
{
   int a = 20;
   int b = 10;
   int c = 15;
   int d = 5;
   int e;
 
   e = (a + b) * c / d;      // ( 30 * 15 ) / 5
   cout << "(a + b) * c / d 的值是 " << e << endl ;

   e = ((a + b) * c) / d;    // (30 * 15 ) / 5
   cout << "((a + b) * c) / d 的值是 " << e << endl ;

   e = (a + b) * (c / d);   // (30) * (15/5)
   cout << "(a + b) * (c / d) 的值是 " << e << endl ;

   e = a + (b * c) / d;     //  20 + (150/5)
   cout << "a + (b * c) / d 的值是 " << e << endl ;
  
   return 0;
}

위 코드를 컴파일하고 실행하면 다음과 같은 결과가 나옵니다.

(a + b) * c / d 的值是 90
((a + b) * c) / d 的值是 90
(a + b) * (c / d) 的值是 90
a + (b * c) / d 的值是 50

핫 AI 도구
Undress AI Tool
Undress AI Tool

무료로 이미지를 벗다

AI Clothes Remover
AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undresser.AI Undress
Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

Stock Market GPT
Stock Market GPT

더 현명한 결정을 위한 AI 기반 투자 연구

인기 있는 도구
메모장++7.3.1
메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6
드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전
SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)