Coding/C

배열(array)

|--------3cm--------| 2021. 7. 24. 18:00

열(array)이란

같은 형태의 데이터의 변수들의 집합으로 다수의 데이터를 저장하고 처리할 경우 유용하게 사용할 수 있습니다.

 

배열의 선언

int array[3];
int array [3]
배열의 자료형 배열의 이름 배열의 길이

위 예시와 같이 <int array[3];>는 배열의 자료형, 이름, 길이 선언하여 이름이 array이고 int형 변수 3개로 이루어진 배열을 선언한다라 나타낼 수 있습니다.

 

예시와 같이 길이가 3인 배열은 다음과 같은 인덱스(배열의 위치정보)로 나타내며 첫 인덱스의 값은 1이 아닌 0부터 시작합니다.

[0] [1] [2]

배열의 특정 요소에 접근하기 위해 인덱스를 사용합니다.

 

 

배열의 요소 삽입

array[0]=10;
array [3] 10
배열의 이름 배열의 인덱스

선언한 배열에 요소를 삽입하기 위해서는 예시처럼 삽입할 배열의 이름, 삽입할 배열의 인덱스, 값을 지정해주어 배열에 요소를 저장합니다.

 

인덱스를 지정해서 요소를 삽입할 수 있을 뿐만 아니라 다음과 같이 선언과 동시에 초기화할 수 있습니다. 

int array[3]=[10, 20, 30];
배열 선언, 순차적으로 10, 20, 30로 초기화

 

int array[3]=[10];
배열 선언, 첫번째 배열요소는 10, 나머지는 0으로 초기화

 

int array[]=[10, 20, 30];
배열 선언, 순차적으로 10, 20, 30로 초기화

배열의 길이를 생략을 할 수 있습니다. 이 경우는 컴파일러가 초기화 리스트의 수를 참조하여 길이정보를 채워주기에

<int array[]=[10, 20, 30];>와 <int array[3]=[10, 20, 30];>는 동일한 문장입니다.

 

char 배열

char arrstr[] = "Go ahead!";
G o   a h e a d ! \0

char형 배열에서는 다음과 같이 문자열이 저장되고 끝에 \n(Null)이 자동 삽입이 됩니다.

예시문의 문자형 배열의 길이는 Go ahead!(9자)에 \n을 더한 10이 됩니다.

문자열 배열을 사용한다면 끝부분에 삽입되는 \n를 고려해야 합니다.

또한 scnaf 함수호출을 통한 문자열 입력뿐만 아니라 C언어에서 표현하는 모든 문자열 끝에는 Null 문자가 자동으로 삽입됩니다.

 

* Null, 공백 차이

=> Null 표시 \n 아스키 코드 0

=> 공백 표시 ' ' 아스키 코드 32

 

문자열에서 끝부분에 Null이 삽입되는 이유

=> 메모리상에 문자열은 이진 데이터로 저장되기 때문에 문자열의 시작과 끝이 표시되어 있지 않아 구분이 불가능합니다. 이를 구분하기 위해 문자열 끝부분에 Null을 표시함으로써 문자열의 시작과 끝을 알 수 있습니다.

 

'Coding > C' 카테고리의 다른 글

포인터(pointer)  (0) 2021.09.12
함수·재귀함수, 지역·전역변수  (0) 2021.06.26
성적 계산기(if ~ else, switch)  (2) 2021.06.13
구구단 출력하기 (while, for)  (0) 2021.06.12
반복문 제어(continue, break, goto)  (0) 2021.06.12