▼ 표 4-2 오브젝트 연산자. ‘형식’ 열은 연산의 구문 형태를 표현한 것이다. 여기서 @는 연산자를, o는 오브젝트를, a는 피연산자 값을 의미한다. ‘타입’ 열에서 *로 표시한 것은 해당 오브젝트 o의 주소값을 가져올 수 있다는 뜻이다.
연산자 |
별칭 |
형식 |
타입 |
결과 |
|
|
|
o |
배열* |
포인터 |
배열 퇴화 |
|
|
o |
함수 |
포인터 |
함수 퇴화 |
|
|
o |
기타 |
값 |
평가 |
= |
|
o@a |
배열 아닌 타입 |
값 |
대입 |
+= -= *= /= |
|
o@a |
산술 |
값 |
산술 |
+= -= |
|
o@a |
포인터 |
값 |
산술 |
%= |
|
o@a |
정수 |
값 |
산술 |
++ -- |
|
@o o@ |
산술 또는 포인터 |
값 |
산술 |
&= |
and_eq |
o@a |
정수 |
값 |
비트 |
|= |
or_eq |
|
|
|
|
^= |
xor_eq |
|
|
|
|
<<= >>= |
|
o@a |
정수 |
값 |
비트 |
. |
|
o@m |
struct |
오브젝트 |
멤버 |
[] |
|
o[a] |
배열* |
오브젝트 |
멤버 |
& |
|
@o |
모든 타입* |
포인터 |
주소 |
sizeof |
|
@ o |
데이터 오브젝트, 비VLA |
size_t |
크기, ICE |
sizeof |
|
@ o |
VLA |
size_t |
크기, ICE |
_Alignof |
alignof |
@(o) |
함수 아닌 타입 |
size_t |
정렬, ICE |