Search

09. 1차원 배열

1차원 배열

1차원 배열은 여러 개의 동일한 타입의 데이터를 연속적으로 저장하는 구조입니다. 또한, 인덱스를 사용하여 각 요소를 참조하고 조작할 수 있습니다.

배열의 선언

배열을 선언하려면 먼저 데이터 유형을 지정한 다음 대괄호[] 를 사용하여 배열의 길이를 지정합니다. 예를 들어, int arr[5];는 길이가 5인 정수 배열을 선언합니다.
int arr[5];
C
복사

배열의 접근

배열에 접근하려면, 대괄호[] 안에 원하는 요소의 인덱스를 지정합니다. 첫 번째 요소의 인덱스는 0이며, 마지막 요소의 인덱스는 배열의 길이 - 1입니다. 예를 들어, arr[0]는 배열 arr의 첫 번째 요소를 참조합니다.
int arr[3]; // 길이가 3인 int형 1차원 배열 arr[0] = 10; // 0번째 10 대입 arr[1] = 12; // 1번째 12 대입 arr[2] = 25; // 2번째 25 대입
C
복사

배열의 초기화

배열을 초기화하려면 배열을 선언하는 동시에 각 요소에 값을 할당합니다. 예를 들어, int arr[3] = {10, 12, 25};는 길이가 3인 정수 배열을 선언하고 각 요소에 10, 12, 25를 할당합니다.
int arr[3] = {10, 12, 25}; // 0번째에 10, 1번째에 12, 2번째에 25 할당 int arr[] = {1, 2, 3}; // 컴파일러에 의해 자동으로 [] 안에 3 삽입 int arr[3] = {1, 2}; // 3번 째 요소는 0으로 채워짐
C
복사

배열을 이용한 문자열 변수

char형 배열의 문자열 저장

C 언어에서 문자열은 문자의 배열로 저장되며, 문자열의 끝은 null 문자('\0')로 표시됩니다. 예를 들어, char name[7] = "DoTTak";은 'D', 'o', 'T', 'T', 'a', 'k', '\0'의 7개의 문자를 저장하는 char형 배열을 선언하고 초기화합니다.
char name[7] = "DoTTak"; // 'D', 'o', 'T', 'T', 'a', 'k', '\0'의 7개의 문자를 저장 char str[] = "Hello, world!"; // 컴파일러에 의해 자동으로 [] 안에 문자열의 길이 삽입
C
복사

문자열의 입력

문자열을 입력하려면, scanf 함수를 사용할 수 있습니다. 그러나 scanf는 공백을 만나면 문자열 입력을 종료합니다. 따라서 한 줄에 여러 단어 또는 문장을 입력하려면 fgets 함수를 사용해야 합니다.
char str[100]; scanf("%s", str); // 공백을 만나면 입력 종료 fgets(str, sizeof(str), stdin); // 한 줄 전체를 입력 받음
C
복사

문자배열과 문자열의 차이

char arr1[] = {'H', 'I', '~'}; // 마지막에 널 문자가 없으므로 문자 배열 char arr2[] = {'H', 'I', '~', '\0'}; // 마지막에 널 문자가 있으므로 문자열
C
복사

예제 출력

$ gcc -o 1d_array.o 1d_array.c $ ./1d_array.o [*] 배열의 선언 및 초기화 int arr[5]; arr[0] = 10 arr[1] = 20 arr[2] = 30 >> 10 20 30 1805168752 1 int arr1[5] = {1, 2, 3, 4, 5}; >> 1 2 3 4 5 int arr3[] = {1, 2, 3}; >> 1 2 3 int arr2[5] = {1, 2, 3}; >> 1 2 3 0 0 [*] char형 배열의 문자열 저장과 널(Null) 문자 char str1[] = "Hello"; 배열 str의 크기: 6 널 문자 문자형 출력: 널 문자 정수형 출력: 0 [*] 배열을 이용한 문자열 변수 char name[7] = "DoTTak"; >> DoTTak char str2[] = "Hello, world!"; >> Hello, world! [*] 문자열 입력 받기 scanf() 아무런 문자를 입력해주세요: Hello I'm DoTTak >> Hello fgets() 아무런 문자를 입력해주세요: Hello I'm DoTTak >> Hello I'm DoTTak
Shell
복사