여기에서 우리는 C/C++에서 단항 연산자가 무엇인지 볼 것입니다. 단항 연산자는 단일 피연산자에 대해 작동하여 새 값을 생성하는 연산자입니다. 단항 연산자는 다음과 같습니다.
연산자 | 설명 |
---|---|
간접 연산자(*) | 포인터 변수에 대해 작동하고 포인터 주소의 값과 동일한 l-값을 반환합니다. 이것을 포인터 "역참조"라고 합니다. |
주소 연산자(&) | 단항 주소 연산자(&)는 피연산자의 주소를 사용합니다. 주소 연산자의 피연산자는 함수 지정자이거나 비트 필드가 아니고 레지스터 저장 클래스 지정자로 선언되지 않은 개체를 지정하는 l-값일 수 있습니다. |
단항 더하기 연산자(+) | 단항 더하기 연산자(+)의 결과는 피연산자의 값입니다. 단항 더하기 연산자에 대한 피연산자는 산술 유형이어야 합니다. |
단항 부정 연산자(-) | -(단항 빼기) 연산자는 피연산자의 값을 무효화합니다. 피연산자는 모든 산술 유형을 가질 수 있습니다. 결과는 lvalue가 아닙니다. |
논리 부정 연산자(!) | 논리 부정 연산자(!)는 피연산자의 의미를 반대로 합니다. 피연산자는 산술 또는 포인터 유형(또는 산술 또는 포인터 유형으로 평가되는 표현식)이어야 합니다. 피연산자는 암시적으로 bool 형식으로 변환됩니다. |
1의 보수 연산자(~) | "비트 보수" 또는 "비트 NOT" 연산자라고도 하는 1의 보수 연산자는 피연산자의 비트 1의 보수를 생성합니다. 피연산자는 정수 유형이어야 합니다. |
접두사 증가 연산자(++) | 접두사 증가 연산자( ++ )는 피연산자에 1을 추가합니다. 이 증가된 값은 표현식의 결과입니다. 피연산자는 const 유형이 아닌 l-값이어야 합니다. 결과는 피연산자와 동일한 유형의 l-값입니다. |
접두사 감소 연산자(--) | 접두사 감소 연산자( -- )는 피연산자에서 1을 뺍니다. 이 감소된 값은 표현식의 결과입니다. 피연산자는 const 유형이 아닌 l-값이어야 합니다. 결과는 피연산자와 동일한 유형의 l-값입니다. |
캐스트 연산자() | 유형 캐스트는 특정 상황에서 객체 유형을 명시적으로 변환하는 방법을 제공합니다. 컴파일러는 typecast가 만들어진 후 cast-expression을 type-name 유형으로 처리합니다. |
sizeof 연산자 | 피연산자의 크기를 계산하는 데 사용할 수 있는 컴파일 시간 단항 연산자입니다. |
새 연산자 | 메모리를 동적으로 할당하는 데 사용되는 메모리 할당 연산자입니다. |
삭제 연산자 | 동적으로 할당된 메모리를 해제할 때 사용하는 메모리 할당 연산자입니다. |
이러한 연산자에는 오른쪽에서 왼쪽으로의 연관성이 있습니다. 단항 표현식은 일반적으로 접미사 또는 기본 표현식 앞에 오는 구문을 포함합니다.
-(빼기) 및 casting() 단항 연산자의 예를 살펴보겠습니다.
예시
#include<iostream> using namespace std; int main() { int x; float y = 1.23; x = (int) y; x = -x; cout << x; return 0; }
출력
-1