▼ 표 4-1 값 연산자. ‘형식’ 열은 연산의 구문 형태를 표현한 것이다. 여기서 @는 연산자를, a와 b는 피연산자에 해당하는 값을 의미한다. 산술 연산과 비트 연산을 수행한 결과의 타입은 a 타입과 b 타입을 조합해서 결정된다. ‘별칭’ 열에는 연산자의 다른 표현 방식이나, 특별한 의미가 있는 연산자 조합을 보여 준다. 여기에 나온 연산자나 항에 대한 자세한 사항은 뒤에서 소개한다.
|
|
|
타입 제약 |
|||
연산자 |
별칭 |
형식 |
a |
b |
결과 |
|
|
|
a |
축소 |
|
확장 |
승격 |
+ - |
|
a@b |
포인터 |
정수 |
포인터 |
산술 |
+ - * / |
|
a@b |
산술 |
산술 |
산술 |
산술 |
+ - |
|
@a |
산술 |
|
산술 |
산술 |
% |
|
a@b |
정수 |
정수 |
정수 |
산술 |
~ |
compl |
@a |
정수 |
|
정수 |
비트 |
& |
bitand |
a@b |
정수 |
정수 |
정수 |
비트 |
| |
bitor |
|
|
|
|
|
^ |
xor |
|
|
|
|
|
<< >> |
|
a@b |
정수 |
양수 |
정수 |
비트 |
== < > <= >= |
|
a@b |
스칼라 |
스칼라 |
0, 1 |
비교 |
!= |
not_eq |
a@b |
스칼라 |
스칼라 |
0, 1 |
비교 |
|
!!a |
a |
스칼라 |
|
0, 1 |
논리 |
!a |
not |
@a |
스칼라 |
|
0, 1 |
논리 |
&& || |
and or |
a@b |
스칼라 |
스칼라 |
0, 1 |
논리 |
. |
|
a@m |
struct |
|
값 |
멤버 |
* |
|
@a |
포인터 |
|
오브젝트 |
레퍼런스 |
[] |
|
a[b] |
포인터 |
정수 |
오브젝트 |
멤버 |
-> |
|
a@m |
struct 포인터 |
|
오브젝트 |
멤버 |
() |
|
a(b …) |
함수 포인터 |
|
값 |
호출 |
sizeof |
|
@ a |
없음 |
|
size_t |
크기, ICE |
_Alignof |
alignof |
@(a) |
없음 |
size_t |
정렬, ICE |