Notice
Recent Posts
Recent Comments
Link
박가방
연산자 연산 순위 본문
1. 산술 연산자
연산자 | 의미 | 비고 |
+ | 덧셈 | |
- | 뺄셈 | |
* | 곱셈 | |
/ | 나눗셈 | |
% | 나머지 | |
++ | 증가 연산자 | 전치 : ++a, --a 형태로 먼저 변수의 값을 증감 시킨 후 변수를 연산에 사용. |
-- | 감소 연산자 | 후치 : a++, a-- 형태로 먼저 변수를 연산에서 사용 한 후 변수 값 증감. |
1.1 산술연산 예
(int a=2, b=3, c=4;)
문제1 : a = 10 ++a |
1. ++a에서 a의 초기 값이 2이며, 전치 증가 연산자 이므로 연산 전 값이 증가하여 '2' -> '3' 이 됨. |
2. 즉 a = 10 + 3 =13 |
문제2 : b = 10% c++ |
1. c++에서 c의 초기 값은 4이며, 후치 증가 연산자 이므로 연산에 사용되는 값은 '4' |
2. b = 10% 4 이므로 결과는 b = 2, 그리고 c는 후치 증가 연산자에 의해 '4' -> '5' |
문제3 : c = ++a * b++ |
1. ++a에서 a의 초기 값은 2이며, 전치 증가 연산자 이므로 연산 전 값이 증가하여 '2' -> '3'이 됨. |
2. b++에서 b의 초기 값은 3이며, 후치 증가 연산자 이므로 연산 에 사용되는 값은 '3' |
3. 따라서 c = 3 * 3 = 9,이며 b 는 후치 증가 연산자에 의해 '3' -> '4' |
2 관계 연산자(Relation Operator)
- 비교 연산자(Comparison Operator)라고도 함.
연산자 | 의미 |
== | 같다 |
!= | 같지 않다 |
> | 크다 |
>= | 크거나 같다 |
< | 작다 |
<= | 작거나 같다 |
3. 비트 연산자(Bitwise Operator)
연산자 | 의미 | 비고 |
& | and | 모든 비트가 1일 때만 1 |
| | or | 모든 비트 중 한비트라도 1이면 1 |
^ | xor(exclusive or) | 모든 비트가 같으면 0, 하나라도 다르면 1 |
~ | not | 각 비트의 부정, '1'이면 '0', '0'이면 '1' |
<< | left shift | 비트를 왼쪽으로 이동 |
>> | right shift | 비트를 오른쪽으로 이동 |
4. 논리 연산자(Logical Operator)
연산자 | 의미 | 비고 |
! | not | 부정 |
&& | and | 모두 참(True)이면 참 |
| | or | 하나라도 참이면 참 |
5. 대입 연산자(Assignment Operator)
연산자 | 예시 | 의미 |
= | a = 1 | C의 경우 a라는 변수명을 가진 메모리 공간에 1을 할당 |
+= | a += 1 | a= a + 1 |
-= | a -= 1 | a = a - 1 |
*= | a *= 1 | a = a * 1 |
/= | a /= 1 | a = a / 1 |
%= | a %= 1 | a = a % 1 |
<<= | a <<= 1 | a = a << 1 |
>>= | a >>= 1 | a = a >> 1 |
6. 조건 연산자(Conditional Operator)
- 삼항 연산자(Ternary Operator)로 부르기도 한다.
형태 | 예시 | 비고 |
조건 ? 수식1 : 수식2; | c = a > b ? a : b | '조건'의 수식이 참이면 '수식1'을, 거짓이면 '수식2'를 실행. |
6.1 조건 연산자 예시
(int a=1, b=2)
문제 1. b *= a > b ? a : b; |
1. 관계연산자 >가 사용된 a > b 에서 1 > 2는 거짓(False)이므로, 수식 2를 실행. |
2. b *= b ---> b = b * b = 2 * 2 = 4 |
7. 순서 연산자
연산자 | 의미 |
,(콤마) | 콤마로 구분하여 한줄에 두개 이상의 수식을 작성하거나 변수를 정의 왼쪽에서 오른쪽 순서대로 수행됨. |
**8. 연산자 우선순위
대분류 | 중분류 | 연산자 | 결합규칙 | 우선순위 |
단항연산자 | 단항 연산자 | ! ~ ++ -- sizeof | <--- | 상대적으로(1) |
이항연산자 | 산술 연산자 | * / % | ---> | 2 |
+ - | 3 | |||
시프트 연산자 | << >> | 4 | ||
관계 연산자 | << >> | 5 | ||
== != | 6 | |||
비트 연산자 | & ^ | |
7 | ||
논리 연산자 | && || |
8 | ||
삼항 연산자 | 조건 연산자 | ? : | ---> | 9 |
대입 연산자 | 대입 연산자 | = += -= *= /= %= <<= >>= 등 | <-- | 10 |
순서 연산자 | 순서 연산자 | , | --> | 11 |
'프로그램 언어' 카테고리의 다른 글
C/C++ JAVA Python 데이터 타입 비교 (0) | 2023.02.02 |
---|