C/C

배열 1 - 배열의 선언과 접근 , 초기화

HicKee 2022. 10. 4. 10:27

배열은 같은 자료형의 변수를 일렬로 늘어놓은 형태, 반복문을 사용하여 반복되는 값을 처리

 

배열의 선언

자료형 배열이름[크기];

선언과 초기화

자료형 배열이름[크기] = { 값, 값, 값 };

배열의 크기를 생략

자료형 배열이름[] = { 값, 값, 값 };

초기화를 하지 않을 때는 생략할 수 없다

int numArr1[] = { 11, 22, 33, 44, 55, 66, 77, 88, 99, 110 };    // 배열의 크기 생략

int numArr2[];    // 컴파일 에러

 

#include <stdio.h>
int main() {
	int arr[10] = { 11,22,33,44,55,66,77,88,99,110 };

	printf("%d", arr[0]); // 11.
	printf("%d", arr[5]); // 55
	printf("%d", arr[9]); // 110.

}

int arr[10] 크기가 10인 int형 배열 선언


배열의 선언 초기화 시{ } 값의 개수는 배열의 크기보다 작아도 되지만 크면 안 된다.


배열에 각 요소에 접근하는 방법은

arr[0]; //첫번째 요소 index 0
arr[5]; //여섯 번째 요소 index 5
arr[9];  //열번째 요소 index 9

주의점

배열의 인덱스는 항상 0부터 시작한다.

int arr[0];    // 컴파일 에러. 크기가 0인 배열은 선언할 수 없음
int arr[1];    // 크기가 1인 배열. 요소가 1개
arr[0];        // 배열의 첫 번째 요소, 인덱스 0에 접근

배열을 0으로 초기화

#include <stdio.h>
int main() {
	int arr[10] = { 0, };

	printf("%d\n", arr[0]);
	printf("%d\n", arr[5]);
	printf("%d\n", arr[9]);

}

{0, } 을 사용하여 일일이 초기화 하지 않아도 배열의 모든 요소를 0으로 초기화 할수 있다.

배열은 [index]로 값을 할당할 수 있다.

arr[0] = 11;
arr[5] = 66;
arr[9] = 110;

배열의 범위를 벗어난 접근

printf("%d\n", numArr[-1]);    // 음수이므로 잘못된 인덱스 -858993460 (쓰레기 값)
printf("%d\n", numArr[10]);    // 배열의 범위를 벗어난 인덱스 - 858993460 (쓰레기 값)
printf("%d\n", numArr[20]);    // 배열의 범위를 벗어난 인덱스 13651968   (쓰레기 값)

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

sizeof 연산자 O 함수 X  (0) 2022.10.04
scanf() 표준 입력 함수  (0) 2022.10.04
포인터 pointer 4 - 이중 포인터, 주의할 점  (0) 2022.10.04
strlen(); 문자열의 길이  (0) 2022.10.03
포인터 pointer 3 - void 포인터  (0) 2022.10.03