정보처리기사 · 핵심요약

2026 정보처리기사 필기 핵심요약

2026

학습유형 선택

프로그래밍 언어 활용

핵심261

배열 형태의 문자열 변수

출제 빈도 4회

원본 80~81쪽

C언어에서는 큰따옴표(“ ”)로 묶인 글자는 글자 수에 관계없이 문자열로 처리된다.

C언어에는 문자열을 저장하는 자료형이 없기 때문에 배열, 또는 포인터를 이용하여 처리한다.

• 형식

char 배열이름[크기] = “문자열”

배열에 문자열을 저장하면 문자열의 끝을 알리기 위한 널 문자(‘\0’)가 문자열 끝에 자동으로 삽입된다.

배열에 문자열을 저장할 때는 배열 선언 시 초기값으로 지정해야 하며, 이미 선언된 배열에는 문자열을 저장할 수 없다.

문자열 끝에 자동으로 널 문자(‘\0’)가 삽입되므로, 널 문자까지 고려하여 배열 크기를 지정해야 한다.

love\0
예제 다음의 출력 결과를 확인하시오.
#include <stdio.h>
main( )
{
char a = 'A';

문자형 변수 a에 문자 ‘A’를 저장한다. 문자형 변수에는 한 글자만 저장되며, 저장될 때는 아스키 코드값으로 변경되어 정수로 저장된다. a가 저장하고 있는 값은 문자로 출력하면 ‘A’가 출력되지만 숫자로 출력하면 ‘A’에 대한 아스키 코드 65가 출력된다.

char b[9] = "SINAGONG";

9개의 요소를 갖는 배열 b를 선언하고 다음과 같이 초기화한다. 저장되는 글자는 8자이지만 문자열의 끝에 자동으로 저장되는 널 문자(‘\0’)를 고려하여 크기를 9로 지정한 것이다.

SINAGONG\0

배열 b

b[0] b[1] b[2] b[3] b[4] b[5] b[6] b[7] b[8]

char *c = "SINAGONG"; ❶

포인터 변수 c에 “SINAGONG”이라는 문자열이 저장된 곳의 주소를 저장한다.

printf("%c\n", a);
printf("%s\n", b);

변수 a의 값을 문자로 출력한다. 배열 위치를 나타내는 첨자 없이 배열 이름을 사용하면 배열의 첫 번째 요소의 주소를 지정하는 것과 같으므로 배열 b의 첫 번째 요소가 가리키는 곳의 값을 문자열로 출력한다.

printf("%s\n", c);
}

포인터 변수 c가 가리키는 곳의 값을 문자열로 출력한다.

ASINAGONGSINAGONG

결과

코드 해설

메모리

주소0000⋮

1Byte 1Byte 1Byte 1Byte 1Byte 1Byte 1Byte 1Byte 1Byte
'S''I''N''A''G''O''N''G'\0
1000 10081016102410321040104810561064
1000

C

⋮9999

위 코드 중 ❶번을 실행할 경우 메모리를 그려보면 다음과 같다.

원본 추출 이미지(검수용·회차 숫자 원문 포함)

구조화된 본문이 원본과 맞게 들어갔는지 확인하기 위한 이미지입니다. 이미지 안에는 원본 회차 숫자와 다음 절 일부가 포함될 수 있습니다.