정보처리기사 필기
시험 직전 요약장
판단 기준과 헷갈리는 개념, 대표 예제를 짧게 확인하세요.
C 입출력·객체 수명·정의되지 않은 동작·부작용
원래 이론 →헷갈리는 개념
표를 좌우로 밀어 나머지 열을 확인하세요. 키보드: ←·→, Home·End
| 표준 스트림 | 기본 목적 | 대표 사용 |
|---|---|---|
stdin | 표준 입력 | 키보드 입력, 파이프 입력 |
stdout | 표준 출력 | 정상 결과, 일반 메시지 |
stderr | 표준 오류 | 오류·진단 메시지 |
대표 계산·예제
대입과 증가·감소는 변수의 상태를 바꾸는 부작용이다. ++i는 증가한 값을 사용하고 i++는 증가 전 값을 식의 값으로 사용한다. 다만 한 식에서 같은 변수를 여러 번 변경할 때는 이 설명만으로 특정 결과를 정하면 안 된다.
연산자 우선순위는 식의 묶임을 정할 뿐 모든 피연산자의 평가 순서를 정하지 않는다. 예를 들어 C에서 i = i++ + 1이나 f(i++, i++)처럼 서로 순서가 정해지지 않은 변경이 충돌하는 식은 정해진 출력값을 가정해서는 안 된다.
또한 배열 경계 밖 접근, 잘못된 포인터 역참조, 서식과 인자형 불일치, signed 정수 오버플로 등은 정의되지 않은 동작을 일으킬 수 있다. 한 번 실행해 특정 값이 나왔다고 C 언어가 그 결과를 보장하는 것은 아니다.
반면 &&와 ||의 단락 평가는 왼쪽 결과에 따라 오른쪽 평가를 생략한다. 아래처럼 문장을 분리하면 변경 순서를 명확히 읽을 수 있다.
C좌우로 이동해 전체 내용을 확인하세요. 키보드: ←·→, Home·End
int i = 2;
int old = i++;
int next = ++i;
/* old는 2, next는 4, i는 4 */
내 최근 연습 오답
현재 브라우저의 연습 채점 기록에서 공개된 단원과 연결된 오답을 확인합니다.
오답 기록을 확인하고 있습니다.