C 언어
연산자는 컴파일러에게 특정 수학적 또는 논리적 조작을 수행하도록 지시하는 기호입니다. C++는 내장 연산자가 풍부하며 다음 유형의 연산자를 제공합니다. -
이 장에서는 산술, 관계, 논리, 비트, 할당 및 기타 연산자를 하나씩 살펴봅니다.
C++ 언어에서 지원하는 다음과 같은 산술 연산자가 있습니다 -
변수 A가 10을 보유하고 변수 B가 20을 보유하고 있다고 가정한 다음 -
예시 보기
연산자 | 설명 | 예 |
---|---|---|
+ | 두 개의 피연산자를 추가합니다. | A + B는 30을 줄 것입니다. |
- | 첫 번째 피연산자에서 두 번째 피연산자를 뺍니다. | A - B는 -10을 줄 것입니다. |
* | 두 피연산자를 곱합니다. | A * B는 200을 줄 것입니다. |
/ | 분자를 분자로 나누기 | B / A는 2를 줄 것입니다. |
% | 정수 나누기 후 모듈러스 연산자와 나머지 | B % A는 0을 줄 것입니다. |
++ | 증가 연산자, 정수 값을 1 증가 | A++는 11을 줄 것입니다. |
-- | 감소 연산자, 정수 값을 1 감소 | A-- 9를 줄 것입니다. |
C++ 언어에서 지원하는 관계 연산자는 다음과 같습니다.
변수 A가 10을 보유하고 변수 B가 20을 보유하고 있다고 가정한 다음 -
예시 보기
연산자 | 설명 | 예 |
---|---|---|
== | 두 피연산자의 값이 같은지 확인하고, 같으면 조건이 참이 됩니다. | (A ==B)는 사실이 아닙니다. |
!= | 두 피연산자의 값이 같은지 확인하고 값이 같지 않으면 조건이 참이 됩니다. | (A !=B)는 참입니다. |
> | 왼쪽 피연산자의 값이 오른쪽 피연산자의 값보다 큰지 확인하고, 그렇다면 조건이 참이 됩니다. | (A> B)는 사실이 아닙니다. |
< | 왼쪽 피연산자의 값이 오른쪽 피연산자의 값보다 작은지 확인하고, 그렇다면 조건이 참이 됩니다. | (A |
>= | 왼쪽 피연산자의 값이 오른쪽 피연산자의 값보다 크거나 같은지 확인하고, 그렇다면 조건이 참이 됩니다. | (A>=B)는 사실이 아닙니다. |
<= | 왼쪽 피연산자의 값이 오른쪽 피연산자의 값보다 작거나 같은지 확인하고, 그렇다면 조건이 참이 됩니다. | (A <=B)는 참입니다. |
C++ 언어에서 지원하는 논리 연산자는 다음과 같습니다.
변수 A가 1을 보유하고 변수 B가 0을 보유하고 있다고 가정하면 -
예시 보기
연산자 | 설명 | 예 |
---|---|---|
&& | 논리 AND 연산자라고 합니다. 두 피연산자가 모두 0이 아니면 조건이 참이 됩니다. | (A &&B)는 거짓입니다. |
|| | 논리적 OR 연산자라고 합니다. 두 피연산자 중 하나라도 0이 아니면 조건이 참이 됩니다. | (A || B)는 참입니다. |
! | 논리적 NOT 연산자라고 합니다. 피연산자의 논리 상태를 반전하는 데 사용합니다. 조건이 참이면 논리 NOT 연산자가 거짓을 만듭니다. | !(A &&B)는 사실입니다. |
비트 연산자는 비트에 대해 작동하고 비트 단위 연산을 수행합니다. &, |, ^에 대한 진리표는 다음과 같습니다 -
p | q | p &q | p | Q | p ^ q |
---|---|---|---|---|
0 | 0 | 0 | 0 | 0 |
0 | 1 | 0 | 1 | 1 |
1 | 1 | 1 | 1 | 0 |
1 | 0 | 0 | 1 | 1 |
A =60이라고 가정합니다. 및 B =13; 이제 바이너리 형식으로 다음과 같이 됩니다 -
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을 보유하고 있다고 가정하고 -
예시 보기
연산자 | 설명 | 예 |
---|---|---|
& | 이진 AND 연산자는 두 피연산자 모두에 존재하는 경우 결과에 비트를 복사합니다. | (A &B)는 0000 1100인 12를 제공합니다. |
| | 이진 OR 연산자는 피연산자 중 하나에 존재하는 경우 비트를 복사합니다. | (A | B)는 0011 1101인 61을 줄 것입니다. |
^ | 이진 XOR 연산자는 하나의 피연산자에만 설정되어 있는 경우 비트를 복사합니다. | (A ^ B)는 0011 0001인 49를 제공합니다. |
~ | 이진 1의 보수 연산자는 단항이며 비트를 '뒤집는' 효과가 있습니다. | (~A )는 부호 있는 이진수로 인해 2의 보수 형식으로 1100 0011인 -61을 제공합니다. |
<< | 이진 왼쪽 시프트 연산자. 왼쪽 피연산자 값은 오른쪽 피연산자가 지정한 비트 수만큼 왼쪽으로 이동합니다. | <<2는 1111 0000인 240을 제공합니다. |
>> | 이진 오른쪽 시프트 연산자. 왼쪽 피연산자 값은 오른쪽 피연산자가 지정한 비트 수만큼 오른쪽으로 이동합니다. | A>> 2는 0000 1111인 15를 제공합니다. |
C++ 언어에서 지원하는 할당 연산자는 다음과 같습니다. -
예시 보기
연산자 | 설명 | 예 |
---|---|---|
= | 단순 할당 연산자, 오른쪽 피연산자에서 왼쪽 피연산자로 값을 할당합니다. | C =A + B는 A + B의 값을 C에 할당합니다. |
+= | AND 할당 연산자 추가, 왼쪽 피연산자에 오른쪽 피연산자를 추가하고 결과를 왼쪽 피연산자에 할당합니다. | C +=A는 C =C + A와 동일합니다. |
-= | 빼기 AND 대입 연산자, 왼쪽 피연산자에서 오른쪽 피연산자를 빼고 결과를 왼쪽 피연산자에 대입합니다. | C -=A는 C =C - A와 동일합니다. |
*= | 곱하기 AND 대입 연산자, 오른쪽 피연산자와 왼쪽 피연산자를 곱하고 그 결과를 왼쪽 피연산자에 대입합니다. | C *=A는 C =C * A와 동일합니다. |
/= | 나누기 AND 할당 연산자, 왼쪽 피연산자를 오른쪽 피연산자로 나누고 결과를 왼쪽 피연산자에 할당합니다. | C /=A는 C =C / A와 동일합니다. |
%= | 모듈러스 AND 할당 연산자, 두 개의 피연산자를 사용하여 모듈러스를 취하고 결과를 왼쪽 피연산자에 할당합니다. | C %=A는 C =C % A와 동일합니다. |
<<= | 왼쪽 시프트 AND 대입 연산자. | C <<=2는 C =C <<2 | 와 동일합니다.
>>= | 오른쪽 시프트 AND 대입 연산자. | C>>=2는 C =C>> 2와 동일합니다. |
&= | 비트 AND 대입 연산자. | C &=2는 C =C &2와 동일합니다. |
^= | Bitwise 배타적 OR 및 할당 연산자. | C ^=2는 C =C ^ 2와 동일합니다. |
|= | 비트 포함 OR 및 할당 연산자. | C |=2는 C =C와 동일 | 2 |
다음 표에는 C++에서 지원하는 몇 가지 다른 연산자가 나와 있습니다.
Sr.No | 연산자 및 설명 |
---|---|
1 | 크기 sizeof 연산자는 변수의 크기를 반환합니다. 예를 들어 sizeof(a), 여기서 'a'는 정수이고 4를 반환합니다. |
2 | 상태 ? X :Y 조건 연산자(?). 조건이 참이면 X 값을 반환하고 그렇지 않으면 Y 값을 반환합니다. |
3 | , 쉼표 연산자를 사용하면 일련의 작업이 수행됩니다. 전체 쉼표 표현식의 값은 쉼표로 구분된 목록의 마지막 표현식 값입니다. |
4 | . (점) 및 ->(화살표) 멤버 연산자는 클래스, 구조체 및 공용체의 개별 멤버를 참조하는 데 사용됩니다. |
5 | 캐스트 캐스팅 연산자는 한 데이터 유형을 다른 데이터 유형으로 변환합니다. 예를 들어 int(2.2000)는 2를 반환합니다. |
6 | & 포인터 연산자 &는 변수의 주소를 반환합니다. 예를 들어 &a; 변수의 실제 주소를 제공합니다. |
7 | * 포인터 연산자 *는 변수에 대한 포인터입니다. 예를 들어 *var; 변수 var를 가리킬 것입니다. |
연산자 우선 순위는 식에서 용어의 그룹화를 결정합니다. 이는 표현식이 평가되는 방식에 영향을 줍니다. 특정 연산자는 다른 연산자보다 우선 순위가 높습니다. 예를 들어, 곱하기 연산자는 더하기 연산자보다 우선 순위가 높습니다 -
예를 들어 x =7 + 3 * 2; 여기서 x는 연산자 *가 +보다 우선순위가 높기 때문에 20이 아닌 13이 할당되므로 먼저 3*2를 곱한 다음 7을 더합니다.
여기서 우선 순위가 가장 높은 연산자는 테이블 상단에 표시되고 가장 낮은 연산자는 하단에 나타납니다. 표현식 내에서 우선 순위가 높은 연산자가 먼저 평가됩니다.
예시 보기
카테고리 | 연산자 | 연관성 |
---|---|---|
접미사 | () [] -> . ++ - - | 왼쪽에서 오른쪽으로 |
단항 | + - ! ~ ++ - - (유형)* 및 크기 | 오른쪽에서 왼쪽으로 |
승법 | * / % | 왼쪽에서 오른쪽으로 |
첨가제 | + - | 왼쪽에서 오른쪽으로 |
시프트 | <<>> | 왼쪽에서 오른쪽으로 |
관계형 | <<=>>= | 왼쪽에서 오른쪽으로 |
평등 | ==!= | 왼쪽에서 오른쪽으로 |
비트 AND | & | 왼쪽에서 오른쪽으로 |
비트 XOR | ^ | 왼쪽에서 오른쪽으로 |
비트 OR | | | 왼쪽에서 오른쪽으로 |
논리 AND | && | 왼쪽에서 오른쪽으로 |
논리적 OR | || | 왼쪽에서 오른쪽으로 |
조건부 | ?: | 오른쪽에서 왼쪽으로 |
과제 | =+=-=*=/=%=>>=<<=&=^=|= | 오른쪽에서 왼쪽으로 |
쉼표 | , | 왼쪽에서 오른쪽으로 |
C 언어
C++ 연산자 오버로딩 이 튜토리얼에서는 예제를 통해 연산자 오버로딩에 대해 배울 것입니다. C++에서는 객체 및 구조와 같은 사용자 정의 유형에 대해 연산자가 작동하는 방식을 변경할 수 있습니다. 이를 연산자 과부하라고 합니다. . 예를 들어, 세 개의 객체 c1를 생성했다고 가정합니다. , c2 및 결과 Complex이라는 클래스에서 복소수를 나타냅니다. 연산자 오버로딩을 통해 연산자의 작동 방식을 변경할 수 있으므로 + 연산자가 작동하고 이를 사용하여 c1의 복소수를 추가합니다. 및 c2 다음 코드를 작성하여: resu
C++ 상속 이 튜토리얼에서는 예제를 통해 C++의 상속에 대해 배웁니다. 상속은 C++에서 객체 지향 프로그래밍의 핵심 기능 중 하나입니다. 기존 클래스(기본 클래스)에서 새 클래스(파생 클래스)를 만들 수 있습니다. 파생 클래스는 기본 클래스의 기능을 상속합니다. 고유한 추가 기능을 가질 수 있습니다. 예를 들어, class Animal { // eat() function // sleep() function }; class Dog : public Animal { // bark() function };