본문 바로가기

Programming/C

연산자

연산자에 대해서 설명하도록 하겠습니다.


연산자...?  하면 어떤게 생각나시나요?


사칙연산? + - * / 가 있죠. C언어를 공부하게 되시면 정말 다양한 연산자들이 나오게 됩니다. C언어를 다시 공부하면서 블로깅하는데도 안쓰는 연산자도 많은거 같아요.

하지만 다 쓸때가 있어서 존재하겠죠?



대입 연산자

대입은 중, 고등학교 수학시간에 수도 없이 들어봤을겁니다. X가 10일때 X+1=? 하고 물어본다면 X가 10이니까 X에 10을 대입한다고 하죠.

즉, 대입은 어딘가에 넣어준다. 저장한다. 라는 의미로 쓰이게 됩니다.

C언어도 마찬가지죠.




대입연산자가 눈에 들어오시나요? 그냥 a는 10이라고 초기화 하는거 말고는 없죠. 당연합니다.

왜냐하면 a를 10으로 초기화 하는것이 a에 10을 대입하는것이기 때문입니다.


===================================================================================================================


산술 연산자

산술? 산술의 정의를 알고계시나요? 저도 정확한 정의를 말 못하겠네요..ㅋㅋㅋ  

찾아보니 수와 양의 간단한 성질 및 셈을 다루는 수학적 계산 방법. 이라고 나오네요. 간단한 성질 과 셈을 다룬다고 하네요.

출처: http://krdic.naver.com/detail.nhn?docid=19712000


간단한 성질!!  간단한게 좋습니다. ㅋㅋㅋㅋ


간단한 연산이 더하기, 빼기, 나누기, 곱하기 가 가장 간단한 연산이죠. C에서는 %라는 연산자가 하나 더 추가 됩니다.




더하기, 빼기, 곱하기, 나누기 까지는 쉽게 이해를 하셨겠죠? 이상한건 % 입니다. %의 역할은 나눈뒤의 나머지 값을 나타냅니다.

따라서 10을 2로 나눴으니 나머지는 0이 되는거고 출력값도 0이 되는거죠.

또 다른 이상한 건 printf 에서 %%를 사용했는데 출력할땐 %만 나타나게 됩니다. 이부분은 다음에 알려드릴께요


===================================================================================================================


기타 대입 연산자


기타 대입 연산자는 말 그대로 기타 입니다. 이상한 연산자들이죠. 하지만 정말 편리합니다.

'+='   '-='   '*='  '/='  '%='




한가지를 예로 들어서 설명하도록 하겠습니다.


a += 3;

a와 3을 더한 후 다시 a에 대입한다. 라는 의미가 되는겁니다. 풀어쓴다면 a = a+3 과 같은 의미를 지니게 됩니다.


마찬가지로 a-=3; 도 a에서 3을 뺀 후, a에 다시 대입한다. 라는 의미입니다. a = a-3 과 같은 의미를 지니게 됩니다.


===================================================================================================================


증감 연산자


말 그대로 증가시키고, 감소시키는 연산자 입니다. 중요한것은 "순서"에 따라 값이 달라지는 것입니다.




a++의 값을 출력했지만 처음 초기화 된 10의 값이 출력이 되었습니다. 하지만 다시 a의 값을 출력하니 11의 값이 나오게 되죠.

이것이 선 연산 후 증가. 입니다. 먼저 a의 값이 출력된 후에 ++ 증가를 한다는 뜻입니다.


++b의 값은 생각하시는 것처럼 증가 후 연산입니다. 그래서 값은 6이 나오게 됩니다.


===================================================================================================================


관계 연산자


어떠한 값의 관계를 알아보기 위한 연산자라고 생각하시면 됩니다.





참 (TURE)이면 1이 되고, 거짓(FALSE)이면 0이 됩니다.

증감 연산자 예제라고 적혀있는건 비밀..... 관계 연산자 입니다. ㅎㅎㅎ



===================================================================================================================


논리 연산자




&&는 둘다 참일 경우 참입니다.

||는 둘중에 하나 이상 참일 경우 참입니다.

!는 TRUE면 FALSE를 FALSE면 TRUE로 나타냅니다.


===================================================================================================================


비트 단위 연산자




&은 AND 연산. 둘다 1일경우 1이되는 연산입니다.


|은 OR 연산. 둘 중 하나 이상이 1일경우 1이되는 연산입니다.


^은 XOR 연산. 두 수가 다른경우 1이되고, 같은경우는 0이 됩니다.


~은 NOT 연산. 0은 1로 1은 0으로 되는 연산입니다.


<< 비트를 왼쪽으로 이동.


>> 비트를 오른쪽으로 이동.



'Programming > C' 카테고리의 다른 글

진수  (0) 2015.03.16
printf 와 scanf  (0) 2015.03.13
변수  (0) 2015.02.25
소스 분석하기  (0) 2015.02.23
소스 작성하기  (0) 2015.02.16