C

C언어를 가르칩니다.

C C언어를 가르칩니다.

삼항 연산자

? : 삼항 연산자

표현식을 만드는 연산자입니다. 기본 형태는 다음과 같습니다.

/*condition*/ ? /*value*/ : /*value*/

왼쪽에 있는 조건식(condition)이 참이라면 왼쪽에 있는 값(value)이 이 표현식의 값이 되고, 거짓이라면 오른쪽에 있는 값이 이 표현식의 값이 됩니다. value에는 함수가 들어갈 수 있습니다. 이 경우 해당 함수가 리턴하는 값이 이 표현식의 값이 됩니다.

int left, right;
puts("left와 right에 들어갈 수를 입력하십시오.");
scanf("%d%d",&left,&right);

int bigger = left>right ? left : right;

printf("%d",bigger);
int tmp= 7>5 ? printf("7 is bigger than 5.") : printf("7 is not bigger than 7"); // : 왼쪽에 들어가는 함수에는 세미콜론을 붙이지 않습니다.
printf()함수도 어떤 값을 리턴합니다.
int input;
puts("수를 하나 입력하십시오.")
scanf("%d",&input);
char * a=input==7 ? "행운의 숫자!" : "불운하시군요.";
printf("s",a);
이 경우 printf("s",a)와 printf(a);의 효과는 같지만, 후자의 경우 format string 보안 취약점이 발생합니다.

댓글

댓글 본문
작성자
비밀번호
버전 관리
truelight
현재 버전
선택 버전
graphittie 자세히 보기