본문 바로가기

C

[C언어] 배열(Array) | 문자열 초기화, 크기와 메모리, 문자열 함수, sizeof(), 널(null) 문자('\0')

반응형

 

 

 

토글

 

 

 

1. 배열의 개념과 선언

 - 배열은 동일한 데이터 타입의 여러 개의 값들을 하나의 변수로 묶어서 관리하는 자료구조이다.

- C언어에서는 배열을 대괄호([])를 사용하여 선언하며, 인덱스를 통해 각 요소에 접근할 수 있다.
 

 int subway_array[3]; // 세 개의 지하철 호차에 대한 배열 선언
   subway_array[0] = 30; // 1호차에 30명이 타고 있음
   subway_array[1] = 40; // 2호차에 40명이 타고 있음
   subway_array[2] = 50; // 3호차에 50명이 타고 있음

 

 


 

2. 배열의 초기화

- 배열을 선언하면서 초기값을 설정할 수 있다.

- 배열의 크기를 지정하고 중괄호({}) 안에 초기값을 나열하면 된다.

 

   int arr[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; // 크기 10의 배열 초기화



- 또는 초기값을 지정하지 않으면, 배열은 해당 자료형의 기본값으로 초기화된다.

- 정수형 배열은 0, 실수형 배열은 0.0, 문자형 배열은 널(null) 문자('\0')로 초기화된다.

 

 

 


 

3. 배열의 크기와 메모리

- 배열의 크기는 항상 상수로 선언해야 한다.

- 배열은 연속적인 메모리 공간에 저장되며, 각 요소는 인접한 메모리 위치에 위치한다.

- 따라서 배열은 인덱스를 통해 빠르게 요소에 접근할 수 있다.

반응형
 int arr[5] = {10, 20, 30, 40, 50};
   int size = sizeof(arr); // 배열의 크기 계산 (20, int 타입 4바이트 * 5개 요소)


- 배열의 크기를 sizeof() 함수로 계산하면, 배열이 차지하는 메모리 공간 크기를 알 수 있다.

 

 

 



4. 문자열과 문자열의 특징

- 문자열은 문자들의 배열로서, 마지막에 널(null) 문자('\0')가 반드시 포함되어야 한다.

- 널 문자를 통해 문자열의 끝을 표시한다.

 

   char str[6] = "coding"; // 문자열 "coding"을 저장하는 배열


 - 문자열은 문자의 집합이므로 각 문자에 접근할 때는 배열과 마찬가지로 인덱스를 사용한다.

 

 

 


 

5. 문자열의 크기와 문자열 함수
  

- 문자열의 크기를 계산할 때는 널 문자를 포함하여 크기를 계산해야 한다.

- 이를 위해 sizeof() 함수를 사용하거나, 문자열 관련 함수인 strlen()을 사용할 수 있다.

 

 char str[6] = "coding";
   printf("문자열의 크기: %d\n", sizeof(str)); // 6 (널 문자를 포함한 크기)
   printf("문자열의 길이: %d\n", strlen(str)); // 6 (널 문자를 제외한 길이)


- 이 외에도 문자열을 조작하는데 유용한 strcpy(), strcmp(), strcat() 등의 함수들이 있다.

 

 

 


 

6. 문자열의 초기화 방법

- 문자열을 초기화할 때는 크기를 지정하지 않고 중괄호({}) 안에 문자들을 나열하면 된다.

   char kor[] = "정처기합격"; // 크기 자동 결정, 널 문자 포함


- 주의할 점은 문자열을 초기화할 때는 널 문자를 반드시 포함해야 한다는 것이다.

- 널 문자가 없으면 문자열의 끝을 알 수 없기 때문에 예상치 못한 결과를 초래할 수 있다.


 

 

 

반응형