상세 컨텐츠

본문 제목

#08.C_배열

코딩 공부/C

by 코딩연습중 2022. 7. 11. 00:43

본문

 만약 num1에 1을, num2에 2를, num3에 3을,,,,,num100에 100을 저장하고 싶다면 어떻게 해야 할까? 

int num1 = 1;
int num2 = 2;
int num3 = 3;
    .
    .
    .
int num100 = 100;

위와 같이 일일이 값을 대입해줄 수도 있겠지만, 저렇게 코드를 짜면 가독성이 떨어지며, 시간이 오래 걸린다. 따라서 배열이라는 것을 사용한다. 100줄이나 되는 코드를 아래와 같이 훨씬 짧게 만들 수 있다.

int num[100];//100개의 공간이 있는 배열 선언
for( int i = 0; i < 100; i++ ){//배열은 num[0], num[1],,,,num[99]의 형태로 100개 존재
	num[i] = i+1;
}

하지만 num배열의 크기를 수정해야될 때, for문 안에 i < 100도 같이 수정해줘야 되는 게 불편할 수 있다. 따라서 i <100을 

i < sizeof(num) / sizeof(num[0]) 으로 바꿔준다.

여기서 sizeof(num)은 num배열의 크기(100) * int의 크기(4byte)를 의미하며, sizeof(num [0])은 int의 크기(4byte)를 의미하는 것이다. 

 

배열에 값을 저장할 때, 다른 방법을 이용할 수 있다.

int n[3] = {1, 2, 3};
char arr1[6] = { 'a', 'p', 'p', 'l', 'e'};
//null문자를 넣을 공간이 필요하기 때문에 배열의 크기 = 저장할 문자의 개수 + 1
char arr2[] = { 'a', 'p', 'p', 'l', 'e', '\0'};
//배열의 크기를 정해주지 않을거라면 따로 마지막에 null문자('\0')을 저장해줘야함

'코딩 공부 > C' 카테고리의 다른 글

#10. C_함수  (0) 2022.07.15
#09. C_포인터  (0) 2022.07.11
#07. C_반복문(for, while)  (0) 2022.07.07
#06. C_증감연산자  (1) 2022.07.06
#05. C_제어문 (switch문)  (0) 2022.07.02

관련글 더보기