개인노트

[C언어] 배열 선언, 배열 초기화 본문

C/문법

[C언어] 배열 선언, 배열 초기화

BillnairK 2017. 6. 23. 23:47

1차원 배열





[ 배열의 선언 ]


int tistory [5];

→ 자료형이 int이고 이름이 tistory인 배열을 5개 선언

→ 배열은 0부터 시작한다. 배열이 5라면 0~4


[ 배열을 선언하면서 초기화 ]


1. int tistory[5]={1,2,3,4,5};

→ 5개의 배열을 선언하고 0 부터 4번째 배열에 1,2,3,4,5를 하나씩 넣는다.


2. int tistory[]={1,2,3,4,5};

→ 배열의 길이를 선언하지 않고 값을 초기화 해도 초기화 한 값들의 갯수를 보고 길이정보는 채워진다.

즉, 1번과 2번은 같은 결과가 나온다.


3. int tistory[5]={1,2};

→ 이같은 경우는 배열은 총5개이지만 2개의 값만 초기화가 되었다.

   이렇게 된다면 앞의 첫번째 배열과 두번째 배열에 1과 2라는 값만 채워지고

   세번째부터 다섯번째 배열의 값은 0으로 채워진다.


#include <stdio.h>


int main(void)

{

int arr1[5] = { 1,2,3,4,5 };

int arr2[] = { 1,2,3,4,5,6,7 };

int arr3[5] = { 1,2 };

int ar1Len, ar2Len, ar3Len, i;


printf("배열 arr1의 크기 : %d \n", sizeof(arr1));

printf("배열 arr2의 크기 : %d \n", sizeof(arr2));

printf("배열 arr3의 크기 : %d \n", sizeof(arr3));

// 바이트 크기의 단위로 배열의 크기가 반환된다.


ar1Len = sizeof(arr1) / sizeof(int);

ar2Len = sizeof(arr2) / sizeof(int);

ar3Len = sizeof(arr3) / sizeof(int);

// int형 배열 arr1은 값이 5개 저장 되어있으므로 크기는 sizeof(int)*5이다.


for (i = 0; i < ar1Len; i++)

printf("%d ", arr1[i]);

printf("\n");


for (i = 0; i < ar2Len; i++)

printf("%d ", arr2[i]);

printf("\n");


for (i = 0; i < ar3Len; i++)

printf("%d ", arr3[i]);

printf("\n");


getchar();








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

[C언어]scanf_s 함수를 이용한 배열의 문자열 입력  (0) 2017.06.27
[C언어] 배열의 문자열과 널(NULL)  (0) 2017.06.26
[C언어] 재귀함수  (0) 2017.05.23
[C언어] Static 변수  (0) 2017.05.23
[C언어] 지역변수, 전역변수  (0) 2017.05.23
Comments