[C언어] 단항 연산자
단항연산자에 대해 작성을 해보겠습니다
저번에 사칙연산에 대해 설명을 했었는데, 그와는 다른 연산 입니다.
사칙연산 같은 경우엔 값들을 더하고 빼고 곱하고 나누고 나머지를 구하고 등등 이였다면
단항 연산자는 한 값을 더하고 빼고 혼자서 지지고 볶고 하는 연산 입니다.
단항 연산자는 2가지로 나눌수가 있습니다.
전위형, 후위형 으로
전위형
#include<stdio.h>
void main()
{
int a;
a = 1;
printf("%d\n",++a);
}
후위형
#include<stdio.h>
void main()
{
int a;
a = 1;
printf("%d\n",a++);
}
소스와 결과를 먼저 보여드렸는데, 전위와 후위의 차이점을 발견 하셨나요??
두 코드는 매우 비슷합니다. 하지만
printf()문 안에 보시면 전위는 ++a로 a값을 가져오고
후위는 a++로 a값을 가져옵니다.
이렇게 값을 가져오니 결과값도 달라진게 보이실 거에요
왜 이런 결과가 나왔냐면!!!!
전위는 (++) 먼저 1을 더하고 a값을 출력
후위는 a값을 출력후 (++) 1을 더함.
뭐 두개가 같은말 같지만... 살짝 틀립니다.
결과를 보시면 알겠지만
전위는 ++이 먼저 실행되 원래 a값에 1을 더해주고나서 a값을 출력하게 됩니다.
후위는 a가 먼저 출력이 되고나서 그다음 a에 ++가 실행되 1이 더해지게 됩니다.
그러니 후위는 a가 출력되고 나서 1이 더해지는 것 이므로 결과는 1로 보이게 됩니다.
그러니깐.. 후위 저 상태에서 다시한번 a를 printf 해보면..
이렇게 a값에 1이 더해진 것을 확인할수 있습니다.
자.. 그럼 문제..... 이렇게 작성을 하면 어떤 결과값이 나올까요??
include<stdio.h>
void main()
{
int a,b;
a = 5;
b = 10;
printf("%d\n",++a);
printf("%d\n",a);
printf("%d\n",b++);
printf("%d\n",b);
}
생각해 보신다음에 답을 보세요 ㅋㅋ
정답은........
6
6
10
11
이렇게 나오게 된답니다 !!
끗.........