#include<stdio.h>
int main()
{
int a;
scanf("%d",&a);
printf("%d", a>0? a*=-1 : a);
}
--------------
input : 21
output : -21
---------------
위의 결과에서 다음과같은 사실을 알 수 있다.
1. a=1이나 a*=1과같은 대입연산자도 그 결과를 반환한다.
2. 삼항연산자 안에는 함수나 연산자가 심지어는 다른 삼항연산자 조차도 들어갈수있다.
3. 삼항연산자는 값을 반환한다.
* 이해할순없지만 3번째 항에서는 a*=-1 같은식으로하면 에러난다. 괄호를 쳐주어서 다음과 같이 해주어야한다.
a>0? a*=-1 : (a*=-1);
아마도 연산자의 우선순위 때문인듯하지만 위와같은 방식은 왠만하면 안쓰는것이 좋을듯 하다.
'공부(IT) > c' 카테고리의 다른 글
[c] 한글 문자열 (0) | 2016.02.07 |
---|---|
[c] 정수와 정수를 나눌때의 처리과정 (0) | 2016.02.06 |
[c] 삼항연산자는 반드시 값을 반환해야한다 (0) | 2016.02.06 |
[c] 올림 버림 반올림 (0) | 2016.02.05 |
[c]세자리수 한번에 입력받아 한글자씩 나눠넣기 (0) | 2016.02.05 |