개인노트
[C언어] 배열 선언, 배열 초기화 본문
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 |