English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

C++ 기본 강의

C++ フロー制御

C++ 関数

C++ 配列 & 文字列

C++ データ構造

C++ クラス & オブジェクト

C++ ポインタ

C++ 継承

C++ STL チュートリアル

C++ リファレンスマニュアル

C++ 연산자

このチュートリアルでは、例を用いてC ++中で異なる種類の演算子があります。プログラミングでは、演算子は値や変数に対して演算を行うシンボルです。

演算子は変数や値に対して演算を行うシンボルです。例えば、+加法の演算子であり、 - 減法の演算子です。

C ++中的运算符可以分为六种类型:

  1. 算术运算符

  2. 할당 연산자

  3. 로직 연산자

  4. 비트 연산자

  5. 其他运算符

1. C ++算术运算符

算术运算符用于对变量和数据执行算术运算。例如,

a + b;

在此,+ ++의 연산자는 여섯 가지 유형으로 분할될 수 있습니다:

변수 A의 값이 가정된다면 10변수 B의 값이 2에서 다양한 수학 연산자가 있습니다.

연산자설명예제
+0을 더하면:자減 연산자는 정수 값을 감소시킵니다 + 두 연산자를 곱합니다 30
-두 연산자를 더합니다자減 연산자는 정수 값을 감소시킵니다 - 두 연산자를 곱합니다 -10
*첫 번째 연산자에서 두 번째 연산자를 뺍니다자減 연산자는 정수 값을 감소시킵니다 * 두 연산자를 곱합니다 2B는
/00분자를 분모로 나눕니다 / B 2
%A는취모 연산자는 정수로 나눈 나머지를 얻습니다
++B % A는 0을 얻습니다 1자減 연산자는 정수 값을 감소시킵니다++ 됩니다 11
--자증 연산자는 정수 값을 증가시킵니다 1자減 연산자는 정수 값을 감소시킵니다-- 됩니다 9

예제1A

#include <iostream>
using namespace std;
int main() {
    int a, b;
    a = 7;
    b = 2;
    // :수학 연산자
    a를 b로 나눈 값을 출력합니다 + cout << "a + b) << endl;
    // a와 b의 합을 출력합니다
    a를 b로 나눈 값을 출력합니다 - cout << "a - b) << endl;
    // a와 b의 차를 출력합니다
    a를 b로 나눈 값을 출력합니다 * cout << "a * b) << endl;
    // a와 b의 곱을 출력합니다
    a를 b로 나눈 값을 출력합니다 / cout << "a / b) << endl;
    // a와 b의 모듈(나머지)을 출력합니다
    cout << "a % b = " << (a % b) << endl;
    return 0;
}

출력 결과

a + b = 9
a - b = 5
a * b = 14
a / b = 3
a % b = 1

여기서, 연산자+、- 와 * 는 기대와 같이 추가, 감소, 곱셈을 각각 계산합니다.

/ 나눗 연산자

주의해야 할 것은 우리 프로그램의 연산자(a / b)。  / 연산자는 나눗 연산자입니다.

위의 예제에서 볼 수 있듯이, 두 정수를 나누면 몫을 얻습니다. 하지만, 분수나 나눗수가 나눗수나 분수인 경우, 소수점 형태로 결과를 얻습니다.

C++에서,
7/2 = 3
7.0 / 2 = 3.5
7 / 2.0 = 3.5
7.0 / 2.0 = 3.5

% 모듈 연산자

% 모듈 연산자는 나머지를 계산합니다. a(9)b로 나눈 값4)의 나머지는1.

주의:% 연산자는 정수와 함께 사용될 수 있습니다.

전치 증가와 감소 연산자

C ++각각 증가와 감소 연산자를 제공합니다:++와--.

++연산자의 값을 증가시킵니다1.

-- 연산자의 값을 감소시킵니다1.

예를 들어,

int num = 5;
// num 증가1
++num;

여기서, num의 값은 초기 값5증가됩니다6.

예제2:증가와 감소 연산자

// 증가와 감소 연산자의 작동 방식
#include <iostream>
using namespace std;
int main() {
    int a = 10, b = 100, result_a, result_b;
    // a를 더1결과를 result_a에 저장합니다
    result_a = ++a;
    cout << "result_a = " << result_a << endl;
    // b를 뺄1결과를 result_b에 저장합니다
    result_b = --b;
    cout << "result_b = " << result_b << endl;
    return 0;
}

출력 결과

result_a = 11
result_b = 99

위의 프로그램에서, 우리는++와-연산자는 전위로 사용됩니다. 또한, 이 연산자들을 후위로 사용할 수 있습니다.

이 연산자들은 전위와 후위로 사용될 때 약간의 차이가 있습니다.

2. C ++ 할당 연산자

C ++중에서, 할당 연산자는 변수에 값을 할당하는 데 사용됩니다. 예를 들어,

// 을 할당합니다5a에 할당
a = 5;

여기서는 변수 a에 값을 할당했습니다5.

연산자
예제동일
=a = b;a = b;
+=a += b;a = a + b;
-=a -= b;a = a - b;
*=a *= b;a = a * b;
/=a /= b;a = a / b;
%=a %= b;a = a % b;

예제2할당 연산자

#include <iostream>
using namespace std;
int main() {
    int a, b, temp;
    // a 할당2
    a = 2;
    //b 할당7
    b = 7;
   // a의 값을 temp에 할당합니다
   temp = a;    // temp은 2
   cout << "temp = " << temp << endl;
    // a와 b의 합을 a에 할당합니다
    a += b;       // a = a +b
    cout << "a = " << a << endl;
    return 0;
}

출력 결과

temp = 2
a = 9

3. C ++

관계 연산자는 두 연산자의 관계를 확인합니다. 예를 들어,

// a가 b보다 큰지 확인합니다
a > b;

여기서 >는 관계 연산자입니다. a가 b보다 큰지 확인합니다.

이 관계가true되면 반환1;이 관계가false되면 반환0.

변수 A의 값이 가정된다면 5변수 B의 값이 11즉,

연산자설명예제
==두 연산자의 값이 같으면 조건이 참입니다.(A == B)은 참이 아닙니다.
!=두 연산자의 값이 같지 않으면 조건이 참입니다.(A != B)은 참입니다.
>좌 연산자의 값이 우 연산자의 값보다 크으면 조건이 참입니다.(A > B)은 참이 아닙니다.
<좌 연산자의 값이 우 연산자의 값보다 작으면 조건이 참입니다.(A < B)은 참입니다.
>=좌 연산자의 값이 우 연산자의 값보다 크거나 같으면 조건이 참입니다.(A >= B)은 참이 아닙니다.
<=좌 연산자의 값이 우 연산자의 값보다 작거나 같으면 조건이 참입니다.(A <= B)은 참입니다.

예제4관계 연산자

#include <iostream>
using namespace std;
int main() {
    int a, b;
    a = 3;
    b = 5;
    bool result;
    result = (a == b);   // false
    cout << "3 == 5 계산 결과는 " << result << endl;"입니다
    result = (a != b);  // true
    cout << "3 != 5 계산 결과는 " << result << endl;"입니다
    result = a > b;   // false
    cout << "3 > 5 계산 결과는 " << result << endl;"입니다
    result = a < b;   // true
    cout << "3 < 5 계산 결과는 " << result << endl;"입니다
    result = a >= b;  // false
    cout << "3 >= 5 계산 결과는 " << result << endl;"입니다
    result = a <= b;  // true
    cout << "3 <= 5 계산 결과는 " << result << endl;"입니다
    return 0;
}

출력 결과

3 == 5 계산 결과는 0입니다
3 != 5 계산 결과는 1
3 > 5 계산 결과는 0입니다
3 < 5 계산 결과는 1
3 >= 5 계산 결과는 0입니다
3 <= 5 계산 결과는 1

주의하세요관계 연산자는 결정과 루프에 사용됩니다.

4. C ++로직 연산자

로직 연산자는 표현식이true또는false표현식이;true되면 반환1;표현식이;false되면 반환0.

변수 A의 값이 가정된다면 1변수 B의 값이 0이면:

연산자설명예제
&&로직과 연산자로 불립니다. 두 연산자 모두 0이 아니면 조건이 참입니다.(A && B)은 거짓입니다.
||로직 또는 연산자로 불립니다. 두 연산자 중 하나라도 0이 아니면 조건이 참입니다.(A || B)이 참(True)입니다.
!이른바 로직 비 연산자로, 연산자의 논리 상태를 반전합니다. 조건이 참(True)이면 로직 비 연산자는 그것을 거짓(False)으로 만듭니다.!(A && B)이 참(True)입니다.

C ++에서 로직 연산자는 일반적으로 의사결정을 위해 사용됩니다. 로직 연산자에 대해 더 잘 이해하기 위해 다음 예제를 보겠습니다.

가정하면,
a = 5
b = 8
가정하면,
(a > 3) && (b > 5) 계산 결과는 true
(a > 3) && (b < 5) 계산 결과는 false
(a > 3) || (b > 5) 계산 결과는 true
(a > 3) || (b < 5) 계산 결과는 true
(a < 3) || (b < 5) 계산 결과는 false
!(a == 3) 계산 결과는 true
!(a > 3) 계산 결과는 false

예제5: 로직 연산자

#include <iostream>
using namespace std;
int main() {
    bool result;
    result = (3 != 5) && (3 < 5);     // true
    cout << "(3 != 5) && (3 < 5) 계산 결과는 " << result << endl;"
    result = (3 == 5) && (3 < 5);    // false
    cout << "(3 == 5) && (3 < 5) 계산 결과는 " << result << endl;"
    result = (3 == 5) && (3 > 5);    // false
    cout << "(3 == 5) && (3 > 5) 계산 결과는 " << result << endl;"
    result = (3 != 5) || (3 < 5);    // true
    cout << "(3 != 5) || (3 < 5) 계산 결과는 " << result << endl;"
    result = (3 != 5) || (3 > 5);    // true
    cout << "(3 != 5) || (3 > 5) 계산 결과는 " << result << endl;"
    result = (3 == 5) || (3 > 5);    // false
    cout << "(3 == 5) || (3 > 5) 계산 결과는 " << result << endl;"
    result = !(5 == 2);    // true
    cout << "!(5 == 2) 계산 결과는 " << result << endl;"
    result = !(5 == 5);    // false
    cout << "!(5 == 5) 계산 결과는 " << result << endl;"
    return 0;
}

출력 결과

(3 != 5) && (3 < 5) 계산 결과는 1
(3 == 5) && (3 < 5) 계산 결과는 0
(3 == 5) && (3 > 5) 계산 결과는 0
(3 != 5) || (3 < 5) 계산 결과는 1
(3 != 5) || (3 > 5) 계산 결과는 1
(3 == 5) || (3 < 5) 계산 결과는 0
!(5 == 2) 계산 결과는 1
!(5 == 5) 계산 결과는 0

로직 연산자 프로그램의 사용법

  • (3!= 5)&&(3 <5)의 값을1, 왜냐하면 두 연산자(3!= 5)와(3 <5) 모두1(true)

  • (3 == 5)&&(3 <5)의 값을 0으로 설정합니다, 왜냐하면 연산자(3 == 5)의 값을 0(false)으로 설정합니다.

  • (3 == 5)&&(3> 5)의 값을 0으로 설정합니다, 왜냐하면 두 연산자(3 == 5)와(3> 5) 모두 0(false)으로 설정됩니다.

  • (3!= 5)||(3 <5)의 값을1, 왜냐하면 두 연산자(3!= 5)와(3 <5) 모두1(true)

  • (3!= 5)||(3> 5)의 값을1, 왜냐하면 연산자(3!= 5)는1(true)

  • (3 == 5)||(3> 5)의 값을 0으로 설정합니다, 왜냐하면 두 연산자(3 == 5)와(3> 5) 모두 0(false)으로 설정됩니다.

  • !(5 == 2)의 값을1, 왜냐하면 연산자(5 == 2)의 값을 0(false)으로 설정합니다.

  • !(5 == 5)의 값을 0으로 설정합니다, 왜냐하면 연산자(5 == 5)는1(true)

5. C ++비트 연산자

C ++에서 비트 연산자가 단일 비트에 대한 작업을 수행하는 데 사용된다고 설명합니다. 이들은 char와 int 데이터 타입과 함께 사용할 수 있습니다.

표는 C++ 지원되는 비트 연산자. 변수 A의 값이 60, 변수 B의 값이 13즉,

연산자설명예제
&두 연산자에 동시에 존재하는 경우, 이진 AND 연산자는 결과에 비트를 복사합니다.(A & B)을 얻습니다 120000 1100
|어느 연산자에도 존재하는 경우, 이진 OR 연산자는 결과에 비트를 복사합니다.(A | B)을 얻습니다 61, 즉 0011 1101
^하나의 연산자에만 존재하며 두 연산자에 동시에 존재하지 않는 경우, 이진 XOR 연산자는 결과에 비트를 복사합니다.(A ^ B)을 얻습니다 49, 즉 0011 0001
~이진 보충 연산자는 일원 연산자로, "전환" 비트 효과를 가지고 있으며, 0이1,10으로 변한다.(~A)을 얻습니다 -61즉 1100 0011하나의 부호 이진수의 보충 형태.
<<이진 수 왼쪽 이동 연산자. 왼쪽 연산자의 값이 오른쪽 연산자가 지정한 비트 수만큼 왼쪽으로 이동된다.A << 2 됩니다 240, 즉 1111 0000
>>이진 수 오른쪽 이동 연산자. 왼쪽 연산자의 값이 오른쪽 연산자가 지정한 비트 수만큼 오른쪽으로 이동된다.A >> 2 됩니다 150000 1111

자세한 정보를 얻으려면C ++비트 연산자.

상단에 논의한 연산자들 외에도, sizeof, ?, ., &와 같은 다른 연산자들도 있습니다. 이들은 한 종류나 다른 종류로 나눌 수 없습니다. 이러한 연산자들에 대해 이후의 강의에서 더 알아보겠습니다.

杂项运算符

아래 표는 C++ 지원하는 다른 중요한 연산자.

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

C++ 내부의 연산자 우선순위

연산자 우선순위는 표현식에서 항목의 조합을 결정합니다. 이는 표현식이 어떻게 계산되는지에 영향을 미칩니다. 일부 연산자는 다른 연산자보다 높은 우선순위를 가지고 있으며, 예를 들어 곱셈과 나눗셈 연산자는 더하기와 뺄셈 연산자보다 높은 우선순위를 가집니다.

예를 들어 x = 7 + 3 * 2여기서 x는 할당됩니다 13연산자 20 * 비교 + 높은 우선순위를 가지고 있어서, 먼저 곱셈을 계산합니다 3*2그런 다음 추가로 7.

아래 표는 연산자 우선순위를 높게부터 낮게까지 나열합니다. 우선순위가 높은 연산자는 표의 상단에 나타나고, 우선순위가 낮은 연산자는 표의 하단에 나타납니다. 표현식에서 우선순위가 높은 연산자는 먼저 계산됩니다.

카테고리 연산자 결합성 
후缀 () [] -> .  ++   - -  왼쪽에서 오른쪽으로 
단일 +  -   !  ~  ++  - -   (type)*  &  sizeof 오른쪽에서 왼쪽으로 
곱除 *  /  % 왼쪽에서 오른쪽으로 
가산 +  - 왼쪽에서 오른쪽으로 
이동 << >> 왼쪽에서 오른쪽으로 
관계 < <=  > >= 왼쪽에서 오른쪽으로 
같습니다 ==  != 왼쪽에서 오른쪽으로 
비트 AND & 왼쪽에서 오른쪽으로 
비트 XOR ^ 왼쪽에서 오른쪽으로 
비트 OR | 왼쪽에서 오른쪽으로 
논리적 AND && 왼쪽에서 오른쪽으로 
논리적 OR || 왼쪽에서 오른쪽으로 
조건 ?: 오른쪽에서 왼쪽으로 
할당 =  +=  -=  *=  /=  %=>>=  <<=  &=  ^=  |= 오른쪽에서 왼쪽으로 
쉼표 , 왼쪽에서 오른쪽으로 

예제: 연산자 우선순위

#include <iostream>
using namespace std;
int main() {
  // 먼저 계산17 * 6
  int num1 = 5 - 17 * 6;
  // 와 num1동등한 표현식
  int num2 = 5 - (17 * 6);
  // 강제 컴파일러가 먼저 계산5 - 17의 값
  int num3 =5 - 17) * 6;
  cout << "num1 =1 << endl;
  cout << "num2 =2 << endl;
  cout << "num3 =3 << endl;
  return 0;
}

출력 결과:

num1 = -97
num2 = -97
num3 = -72

주의: C ++중有很多 연산자가 여러 우선 순위를 가지므로 코드의 가독성을 높이기 위해 꼭 괄호를 사용하는 것이 좋습니다.

추천 사항:C++ 연산자 우선 순위 및 연관성