4. 기타 연산자
다음으로 기타 연산자들을 배워 보기로 하겠습니다.
여기서 배울 것에는 조건 연산자, 증감 연산자, 그리고 sizeof연산자와, 혼합 연산자가 있습니다.
(1) 조건 연산자
조건 연산자는 주어진 조건에 따라 어떤 수식을 실행하고 그 결과를 돌려주는 연산자 입니다.
사용법은
조건 ? 수식1 : 수식2
이런 식으로 사용하죠.
여기서 조건은 관계형 연산자로 만든 조건입니다.
여기서 만약 조건이 참이면 수식1을 실행한 후 그 결과를 돌려주고,
거짓이면 수식2를 실행하는 것 입니다.
예를 들어 보죠.
a = 1>3 ? 1+3 : 2+6;
여기서 a에 들어가는 값은?
1>3이란 조건은 거짓이므로 두번째 수식인 2+6이 실행되고 결과로 8을 돌려주므로 a는 8이 되겠죠. 이 문장은
1>3 ? a=1+3 : a=2+6;
이렇게 써도 상관 없습니다. =이 들어가도 수식이므로
(2) 증감 연산자
이번엔 증감 연산자에 대해 알아보죠.
증감 연산자는 어떠 변수에 1을 더하거나 빼 주는 연산자이죠
연산자에는
------------------------------------------------------------
++ 1을 증가시킴
-- 1을 감소시킴
------------------------------------------------------------
이렇게 두 가지가 있습니다.
이 두 연산자는 변수 앞이나 뒤에 붙여 사용하면 되는데 앞에 붙일때와 뒤에 붙일때의 차이점은 일단 나중으로 넘기고 예를 들어보죠.
만약
a++;
이렇게 하면 a는 1이 증가하게 됩니다.
즉 a=a+1;가 되는 것이죠.
그리고
a--;
이렇게 하면 a=a-1;이 되는 것 이고요.
그럼 앞에 붙이느냐 뒤에 붙이느냐에 차이를 알아보죠.
이 차이가 나는 곳은 바로 이 연산자가 하나로만 쓰이지 않고 여러개의 연산자와 같이 쓰였을때 차이가 남니다.
이 연산자를 앞에 붙이면 이 연산이 가장 먼저 수행되고 다른 연산이 수행됩니다.
하지만 이 연산자를 뒤에 붙이면 다른 모든 연산을 수행하고 이 연산을 수행하게 되죠.
예를 들어
int a,b=1;
a = 6 - ++b;
이렇게 했을때는 앞에 붙었으므로
우선 b를 1 증가시켜 2로 만든 후 6에서 빼 a에는 4가 들어가지만
int a,b=1;
a = 6 - b++;
이럴경우 우선 다른 연산부터 해서 a에는 5가 들어가고 마지막으로 b가 1이 증가되어 2가 되게 됩니다.
(3) sizeof연산자
이번엔 sizeof연산자에 대해 알아보죠.
sizeof는 어떤 데이터 타입이나 변수, 또는 상수의 크기를 바이트 단위로 알아내는 연산자 입니다.
사용법은 sizeof(데이터타입) 또는
sizeof(데이터)
예를 들어
a=sizeof(char)
이렇게 할 경우 char형태는 1바이트 이므로 a는 1이 됩니다.
그리고
char c;
a=sizeof(c);
이렇게 해도 1이 되죠
a=sizeof(long);
이렇게 하면 4를 돌려 주겠죠?
그리고 만약 배열이라면 배열 크기를 바이트 수로 돌려줌니다.
예를 들어
int array[10];
a=sizeof(array);
이렇게 할 경우 int는 2바이트 이고 10개의 배열이므로 2*10=20이므로 20을 돌려줌니다.
(4) 혼합 연산자
혼합 연산자는 말 그대로 두개의 연산자를 혼합한 것 입니다.
프로그램을 만들다 보면
a=a+3;
a=a-2;
a=a*3;
a=a/2;
a=a|0x0F;
a=a&0x0A;
a=a>>4;
이런 수식처럼 한개의 데이터 여기선 a가 겹치는 수식을 쓸 때가 있습니다.
이럴때 더 간단히 쓸 수가 있습니다.
바로 혼합 연산자를 쓰면 되는데 혼합 연산자의 종류에는
+=, -=, *=, /=, %=, &=, |=, ^=, <<=, >>=
이런 것들이 있습니다.
각각의 기능을 살펴보면
------------------------------------------------------------
a += b -> a = a + b
a -= b -> a = a - b
a *= b -> a = a * b
a /= b -> a = a / b
a %= b -> a = a % b
a &= b -> a = a & b
a |= b -> a = a | b
a ^= b -> a = a ^ b
a <<= b -> a = a << b
a >>= b -> a = a >> b
------------------------------------------------------------
이런 기능을 합니다.
이렇게 혼합 연산자를 잘 쓰면 수식을 더 간단히 쓸수 있죠.
이것으로 이번 강좌는 마치도록 하겠습니다.
이제 연산자 부분은 다 끝났습니다.
다음 강좌 부터는 프로그램 흐름 제어에 관한 공부를 해 보겠습니다.
'공부하자 > C언어' 카테고리의 다른 글
C언어 문법 공부 7장 [switch문] (0) | 2016.11.20 |
---|---|
C언어 문법 공부 7장 [if문] (0) | 2016.11.20 |
C언어 문법 공부 6장 [비트별 연산자] (0) | 2016.11.20 |
C언어 문법 공부 6장 [논리 연산자] (0) | 2016.11.20 |
C언어 문법 공부 6장 [관계형 연산자] (0) | 2016.11.20 |