()
를 통해서 다른사람이 보더라도 헷갈리지않게 코딩을 하는편이 좋다고 생각됩니다.[]
, ()
, .
, ->
, ++
, --
[] : 첨자 연산자 - 배열(포인터)에서 원소를 지정할 때 사용
() : 함수 호출 연산자 - C++에서는 함수 객체(function object)와 함께 사용도 가능하다. 그외에도 ()를 통해 기존 연산자 순위와 무관하게 우선순위를 가장 높게 처리할 수 있다.
. : 참조에 의한 선택
-> : 포인터에 의한 선택
++, -- (i++, i--) : 후위 증감 연산자
동일 연산자 순위에서는 왼쪽에서부터 오른쪽으로 처리합니다.
sizeof
, &
, *
, +
, -
, ~
, !
, ++
, --
sizeof : 크기 연산자
& : 주소 연산자(단항 연산자) - 해당 변수의 주소값을 반환합니다.
* : 참조 연산자(단항 연산자) - 포인터의 이름이나 주소 앞에 사용하여, 포인터에 가리키는 주소에 저장된 값을 반환합니다.
+ : 양의 부호 (단항 연산자) - 덧셈 연산자와는 다릅니다(!).
- : 음의 부호 (단항 연산자) - 뺄셈 연산자와는 다릅니다(!).
~ : 비트 NOT 연산자 - 비트를 뒤집습니다. (비트 반전)
! : 논리 NOT 연산자 - 논리식의 결과가 참이면 0을, 거짓이면 1을 반환합니다.
++, -- (++i, --i) : 전위 증감 연산자
동일 연산자 순위에서는 오른쪽에서부터 왼쪽으로 처리합니다.
타입 캐스팅
(type) : 형 변환을 합니다.
ex)
int a = 10;
int b = 3;
float c;
c = a / b;
printf("%f, c); -> 3.000000 출력
c = (float)a / b;
printf("%f, c); -> 3.333333 출력
동일 연산자 순위에서는 오른쪽에서부터 왼쪽으로 처리합니다.
*
, /
, %
* : 곱셈 연산자
/ : 나눗셈 연산자
% : 나머지 연산자
동일 연산자 순위에서는 왼쪽에서부터 오른쪽으로 처리합니다.
+
, -
+ : 덧셈 연산자(이항 연산자) - 양의 부호 연산자와는 다릅니다(!).
- : 뺄셈 연산자(이항 연산자) - 음의 부호 연산자와는 다릅니다(!).
동일 연산자 순위에서는 왼쪽에서부터 오른쪽으로 처리합니다.
<<
, >>
<< : 왼쪽 시프트 연산자 - 정수 또는 열거형 형식 식의 비트를 왼쪽으로 이동합니다.
>> : 오른쪽 시프트 연산자 - 정수 또는 열거형 형식 식의 비트를 오른쪽으로 이동합니다.
부호 비트가 영향을 받도록 부호 있는 숫자를 왼쪽 시프트하면 결과가 정의되지 않았습니다.
오른쪽 시프트 연산에서 부호 있는 음수의 결과는 구현에 따라 다릅니다. Microsoft C++ 컴파일러는 부호 비트를 사용하여 비어 있는 비트 위치를 채우지만 다른 구현도 그렇게 한다는 보장은 없습니다.
동일 연산자 순위에서는 왼쪽에서부터 오른쪽으로 처리합니다.
<
, >
, <=
, >=
관계연산자(relational operator) - 두 개의 값을 비교하는 논리식에 사용되는 연산자
a < b : a가 b보다 작다. 다음의 명제가 참이면 1, 거짓이라면 0
a > b : a가 b보다 크다. 다음의 명제가 참이면 1, 거짓이라면 0
a <= b : a가 b보다 작거나 같다. 다음의 명제가 참이면 1, 거짓이라면 0
a >= b : a가 b보다 크거나 같다. 다음의 명제가 참이면 1, 거짓이라면 0
동일 연산자 순위에서는 왼쪽에서부터 오른쪽으로 처리합니다.
==
, !=
동등연산자(equality operator)
a == b : a는 b와 같다. 다음의 명제가 참이면 1, 거짓이라면 0
a != b : a는 b와 같지않다. 다음의 명제가 참이면 1, 거짓이라면 0
동일 연산자 순위에서는 왼쪽에서부터 오른쪽으로 처리합니다.
&
& : 비트 AND 연산자 - 각각의 대응되는 비트를 비교하면서 두개가 모두 1이면 1을 반환합니다. 그외에 경우에는 0을 반환합니다.
동일 연산자 순위에서는 왼쪽에서부터 오른쪽으로 처리합니다.
^
^ : 비트 XOR 연산자 - 각각의 대응되는 비트를 비교하면서 두개가 서로 다르다면 1을 반환합니다. 그외에 경우에는 0을 반환합니다.
동일 연산자 순위에서는 왼쪽에서부터 오른쪽으로 처리합니다.