3.5 순환문 while과 for 중

haejeongrah Reply 6 years 30 weeks ago
int atoi(char s[]) { int i, n, sign; for (i = 0; isspace(s[i]); i++); sign = (s[i] == '-') ? -1 : 1; if (s[i] == '+' || s[i] == '-') i++; for (n = 0; isdigit(s[i]); i++) n = 10 * n + (s[i] - '0'); return sign * n; } 여기서 sign = (s[i] == '-') ? -1 : 1; 이 부분을 이해를 못하겠습니다 . ?는 무슨 뜻인가요? 그리고 -1:1도 무슨 뜻인지 잘 모르겠습니다.
onacloud Reply 6 years 28 weeks ago
sign = (s[i] == '-') ? -1 : 1; 는 입력된 문자열 s의 부호(+,-)를 저장합니다. ? 는 3항 조건 연산자로 알려져 있어요. (s[i] == '-') ? -1 : 1 expression 을 실행할때 만약에 (s[i] == '-') 부분이 참이면 -1 (s[i] == '-') 부분이 거짓이면 1이 남겨져요.