안녕하십니까. 리습입니다.
이제 연산자에 대하여 상세하게 알아보도록 하겠습니다. 우선 단항연산자입니다. 단항연산자는 하나의 요소만을 가지고 특정한 작업을 하도록 하는 연산기호 입니다. 즉 단항연산자가 영향을 주는 대상은 단 한가지 라는 것입니다. 그럼 단항연산자를 하나하나 알아보도록 하겠습니다. 이중 아직 우리가 배우지 않은 부분은 간단하게 개념만 설명하도록 하겠습니다.
부호연산자 ( + - ) |
부호연산자는 변수를 양의 값을 가질지 음의값을 가질지 결정해주는 연산자입니다. 이렇게 말로 써놓으면 어렵지만 우리는 이미 흔하게 사용하고 있습니다. 변수 A 에 음의 값 -1 을 넣기 위해서 우리는 1의 앞에 - 표시를 해주었습니다. 이것과 마찬가지입니다. 부호연산자를 사용하기 위해선 앞에 -를 넣어주기만 하면되는 것입니다. 예시 코드를 한번 보도록하겠습니다.
코드 |
int i = -1;
|
이렇게 부호연산자는 단순히 어떤 숫자가 음의 값을 가지는지 , 양의 값을 가지는지 결정지어주는 변수라고 할 수 있습니다. ( 그냥 1 을 넣을 경우 알아서 +1이라고 인식합니다.)
포인터 연산자 ( * & -> ) |
포인터는 말 그대로 포인터와 관련되어있는 연산자를 뜻합니다. 포인터란 특정 변수의 메모리 주소를 가리키는 변수를 말하는 것으로 후에 배우게 될것입니다. 사용 예는 다음과 같습니다.
코드 |
int *ptr = &i;
|
아직 포인터를 배우지 못했기 때문에 이해가 안되시겠지만 이 코드의 의미는 " int 형식으로 읽어내야 하는 데이터가 저장된 공간의 주소를 저장하는 변수 ptr을 만들고 그 안에 변수 i의 주소값을 넣어라" 입니다. 길어보이고 어려워 보이지만 나중엔 다 쉽게 이해하실 수 있습니다.
증감연산자 ( ++ -- ) |
증감연산자는 변수 안에 저장된 값을 1씩 증가시키는 연산자입니다. 예를 들어 i라는 변수에 7이 저장되있다면 i++ 이라고 쓰면 8이 되는 것이지요. 증감연산자에는 두가지가 있습니다. 증감연산자를 값 앞쪽에 두거나 뒤쪽에두는 것입니다. ++i 라고 쓴다면 i에서 1을 키운 후에 계산이 진행되고 i++은 계산이 끝난 후에 1이 증가되게 됩니다. 예시 코드를 한번 보도록 하겠습니다.
코드 |
#include <stdio.h> int main(void) { int i = 10; printf("%d\n", i); printf("%d\n", ++i); printf("%d\n", i); printf("%d\n", i++); printf("%d\n", i); return 0; } |
결과 |
10 11 11 11 12 |
위 코드를 차근차근 분석해보도록 하겠습니다. 우선 int 형 의 i라는 변수를 선언하였습니다. 그리고 이 변수에 10이라는 값을 넣었죠. 그리고 printf 로 화면에 출력을 하게되는데 첫번째 printf에서는 i를 그대로 출력합니다. 그래서 10이 출력되게 되며, 두번재 printf에서는 선행으로 ++을 입력하였기때문에 i 에 1을 더하고 화면에 출력하게 됩니다. 그래서 11이 출력된것입니다. 다음 printf 현재 i가 어떤 값을 가지고 있는지 보여주는 것입니다. 현재 i는 11을 나타내고있으며 네번째 printf에서는 화면에 i를 출력한후 i를 1 증가시키게 됩니다. 그리고 마지막 printf에서 12가 출력되는 것입니다.
지금 말로 써놓은 것은 어려워 보이지만 차근차근 생각하시면 이해가 되실것입니다.
이 ++이라는 연산자는 매우 유용한 연산자인데 우리가 사용하는 for 반복문에서도 ++을 사용할수 있습니다.
코드 |
for( int i = 0 ; i <10 ; i++ )
|
이런식으로 쓰게되면 i = i + 1 보다 더 보기 좋은 코드가 되는 것입니다.
sizeof 연산자 ( sizeof() ) |
sizeof연산자는 차지하고 있는 메모리 공간의 크기를 계산해주는 연산식입니다. 후에 메모리의 크기를 조절할 때 와 문자열(문장)을 사용할때 많이 사용하시게 됩니다.
코드 |
printf("%d" , sizeof( int ) ")
|
예시 코드는 int 의 메모리 크기를 화면에 출력하는 코드 입니다.
캐스트연산자 ( (변환하고싶은 형식) ) |
캐스트 연산자는 특정형식의 변수를 다른 형식으로 강제변환할 때 사용하는 연산자입니다. 예를들어 double 형식의 변수를 char 형식의 변수로 바꿀 때 사용하게 됩니다.
코드 |
double num = 10; int i = (int)num
|
double 형식의 num은 일반적인 경우 int 형식의 i 에 데이터를 넣을 수 없지만 캐스트 연산자로 강제 형변환을 하게 되면 넣을수 있게 됩니다.
이렇게 단항연산자에 대하여 알아보았습니다. 연산자는 마치 계산기의 + , - , *, / 와 같습니다. 자신이 필요한 연산자를 잘 이용하면 더 많은 일을 해결하실수 있으실 겁니다. 다음엔 이항 연산자에 대하여 알아보도록 하겠습니다.
'소프트웨어 > C 언어' 카테고리의 다른 글
[C언어]16. 변수의 계산방법, 연산자에 대하여 알아보자. -4- ( 삼항연산자, 조건연산자 ) (0) | 2013.06.06 |
---|---|
[C언어]15. 변수의 계산방법, 연산자에 대하여 알아보자. -3- ( 이항연산자 ) (0) | 2013.06.06 |
[C언어]13. 변수의 계산방법, 연산자에 대하여 알아보자. -1- ( 연산자의 종류 ) (0) | 2013.06.06 |
[C언어]12. [실습] 반복문을 이용한 프로그램 만들기. - 트리, 피라미드 모양 출력하기 - (0) | 2013.06.05 |