본문 바로가기
Language/C언어

C011_배열 사용하기

by OdOp 관리자 2023. 9. 13.
SMALL

배열 사용하기

#include <stdio.h>

int main()
{
    int numArr1[10] = { 11, 22, 33, 44, 55, 66, 77, 88, 99, 110 };
    int* numPtr1 = numArr1;  //포인터에 int형 배열을 할당
    int binary[20] = { 0, };

    printf("%d\n", numArr1[0]);
    printf("%d\n", numArr1[-1]);  //인덱스가 범위를 벗어난다면 쓰레기 값을 출력함
    printf("%d\n", sizeof(numArr1));  //4바이트 크기의 요소가 10개이므로 40바이트
    printf("%d\n", sizeof(numArr1) / sizeof(int));  //배열의 크기를 구할 때에는 전체 공간의 크기를 요소의 크기로 나누어줌
    printf("%d\n", *numPtr1);  //배열의 주소가 들어있는 포인터를 역참조하면 배열의 첫 번째 요소에 접근
    printf("%d\n", *numArr1);  //배열 자체를 역참조해도 배열의 첫 번째 요소에 접근
    printf("%d\n", numPtr1[5]);  //배열의 주소가 들어있는 포인터는 인덱스로 접근할 수 있음
    printf("%d\n", sizeof(numArr1));  //sizeof로 배열의 크기를 구하면 배열이 메모리에 차지하는 공간이 출력됨
    printf("%d\n", sizeof(numPtr1));  //sizeof로 배열의 주소가 들어있는 포인터의 크기르 구하면 포인터의 크기가 출력됨 int형의 크기 출력됨
    return 0;
}

'int numArr1[10] = { 11, 22, 33, 44, 55, 66, 77, 88, 99, 110 };'과 같은 형태인 '자료형 배열이름[크기] = {값, 값, 값};'로 배열의 선언 및 할당을 할 수 있다. 

배열에 값이 저장된 공간을 요소(element)라 합니다. numArr1의 요소는 11, 22, 33, 44, 55, 66, 77, 88, 99, 110이라고 할 수 있겠죠.

이를 모두 0으로 한꺼번에 할 수 있습니다. 

'int binary[20] = { 0, };'와 같은 형태인 '자료형 배열이름[크기] = { 0, }'로 배열의 요소를 0으로 모두 초기화할 수 있습니다. 

'numArr1[-1]'와 같이 인덱스 범위에 포함되지 않는 값을 할당하게 되면 쓰레기 값이 출력됩니다. 

배열의 사이즈를 구하는 방법은 'sizeof(numArr1) / sizeof(int)'와 같은 형태인 'sizeof(배열이름)/sizeof(자료형)'로 사용하시면 될것 같습니다. 

LIST

'Language > C언어' 카테고리의 다른 글

C013_구조체 포인터 사용하기  (0) 2023.09.15
C012_struct, 구조체에 대해  (0) 2023.09.14
C010_malloc사용하기  (0) 2023.09.12
C009_포인터에 대해(간단히)  (0) 2023.09.11
C008_continue와 break  (0) 2023.09.10