산술 연산자: +, -, *, /, %, -가 피연산자가 하나인 경우는 부호를 바꾸는 역할을 함
대입 연산자: 우선순위에 따라 다른 연산을 먼저 수행하고 그 결과를 왼쪽 변수에 저장
a++
는 다른 연산자와 함께 사용될 때 가장 나중에 연산된다고 생각하자(++a) + a + (++a)
하나의 수식에서 같은 변수를 두 번 이상 사용할 때는 그 변수에 증감 연산자를 사용하면 안됨! - 이렇게 코딩하지 마세요!!=
인데 순서를 혼동하지 말라&&
- 좌항이 거짓이면 우항은 볼 것 없이 거짓
||
- 좌항이 참이면 우항은 볼 것 없이 참
그러므로 예상치 못한 결과가 나올 수 있으니 주의해서 코딩할 것
피연산자의 값을 복사해 일시적으로 형태를 바꾸므로 연산 후 메모리에 남아 있는 피연사자의 형태나 값은 변하지 않음
warning C4477
- sizeof 연산의 결과 값 형태와 변환 문자가 일치하지 않아 나오는 경고로 불편하면 변환 문자를 %zd
로 바꾸거나, #pragma warning(disable:4477)
을 소스 코드 첫 줄에 추가하자
sizeof 연산자에 괄호를 쓰지 않아도 되지만, 편의상 피연산자에 괄호로 묶어 주는 것이 좋음
하지만 함수가 아님!
한 번에 여러 개의 수식을 차례로 나열해야 할 때 사용
왼쪽부터 오른쪽으로 차례로 연산을 수행하며 가장 오른쪽의 피연산자가 최종 결과값이 됨
코드를 간략히 만들어 주는 효과가 있지만 가독성이 떨어질 수 있으므로 필요한 곳에서만 사용하자
&
- 두 비트가 모두 1인 경우에만 1로 계산
^
- 두 비트가 서로 다른 경우만 1로 계산
|
- 두 비트 중 하나라도 1이면 1로 계산
~
- 1을 0으로 바꾸고 0을 1로 바꿈
<<
- 비트를 왼쪽으로
>>
- 비트를 오른쪽으로
큰 흐름으로 보자면,
여러 연산자를 함께 사용할 때 주저 없이 괄호를 사용해서 표현을 명확하게 합시다.