C++ 배열 초기화

2014.06.14 09:59

엘카 조회 수:630

참고 문서  
   배열을 초기화한 예 
 초기화 값은 배열 메모리 내에 순서대로 저장된다. 
 배열의 초기화란 선언과 동시에 배열에 값을 할당하는 것이다. 

  int  arr[5] = {1,2,3,4,5};           /* 1차원 숫자 배열 초기화 */ 
  char str[5] = {'a','b','c','d'}      /* 1차원 문자 배열 초기화 */ 
  char str[5] = "king";                /* 1차원 문자 배열 초기화(문자열) */ 
  int  arr[2][3] = {5,6,7,8,9,10};     /* 2차원 숫자 배열 초기화 */ 
  int  arr[2][3] = {{5,6,7},{8,9,10}}; /* 2차원 숫자 배열 초기화 */ 

 함수 내에 선언되는 배열은 초기화하지 않으면 임의의 값(쓰레기 값)을 갖는다. 
 하지만, 선언시 초기화되는 배열은 지정된 초기화 값을 저장하고 남은 배열 영역을 
0(정수형이나 실수형은 0, 문자형은 null)으로 초기화시킨다


 배열 초기화 
다차원 배열의 초기화는 여러 가지 방법으로 초기화될 수 있다. 
  arr[2][3] = {1,2,3,4,5,6}; 
  arr[2][3] = {{1,2,3},{4,5,6}}; 
 위 두 선언문은 같은 데이터를 arr 배열 영역에 저장한다. 
 표현만 다를 뿐 저장되는 내용은 같다. 
 두 번째 선언문의 안쪽 중괄호는 2차원 배열의 각 행의 데이터를 의미한다. 따라서 
첫 번째 행에 1,2,3을 두 번재 행에 4,5,6을 할당한 것이다. 

str_arr6.c  // 5명의 성명을 입력 받아 문자 배열에 저장한 후 출력시키는 예 
#include <stdio.h> 
int main(void) 
{ 
   char names[5][20];   
   int i;   
 
   for(i=0;i<5;i++)   
   {     
      printf("%d, 성명 ? ", i+1);     
      gets(names[i]);     /* 문자열 입력 */    
   }   
 
   for(i=0;i<5;i++)     
      printf("%s, %p \n", names[i], names[i]); /* 문자열 출력 */   
   printf("\n");   
 
   return 0; 
} 


str_arr7.c  // 3차원 배열의 이해 
#include <stdio.h> 
int main(void) 
{ 
   int num[3][4][5];          
   int i,j,k, n;       
   for(i=0;i<3;i++){       /* 면을 제어 */     
      n=0;         
      for(j=0;j<4;j++)         /* 행을 제어 */   
         for(k=0;k<5;k++){     /* 열을 제어 */ 
            n++;                
            num[i][j][k]=n;            
         };    
   }       
   for(i=0;i<3;i++){       /* 제어변수 i는 면을 구분한다. */   
      printf("%d 면 출력\n", i);         
      for(j=0;j<4;j++){        /* 제어변수 j는 행을 구분한다. */  
         for(k=0;k<5;k++)      /* 제어변수 k는 열을 구분한다. */ 
            printf("%5d", num[i][j][k]);            
         printf("\n");         /* 5열 출력 후 줄 바꿈 */     
      }     
   }   
   return 0; 
} 

번호 제목 날짜 조회 수
43 구조체 포인터 2014.06.15 931
42 구조체의 선언과 데이터 입·출력 2014.06.15 3084
41 함수 포인터 2014.06.15 447
40 배열과 포인터 2014.06.15 406
39 포인터 연산 2014.06.15 384
38 포인터 변수 2014.06.15 414
37 데이터 정렬 2014.06.15 424
» 배열 초기화 2014.06.14 630
35 2차원 배열 2014.06.14 670
34 문자열 처리 함수 2014.06.14 412
33 문자열 입출력 함수 2014.06.14 442
32 접근 수정자 2014.06.14 824
31 전역 변수 2014.06.14 308
30 지역 변수(local variable) 2014.06.14 295
29 변수와 메모리 저장 위치 2014.06.14 428
28 비트 연산자 2014.06.14 288
27 관계 연산자와 논리 연산자 2014.06.14 472
26 증감 연산자 2014.06.14 319
25 printf() 함수의 형식 지정자 2014.06.14 7522
24 열거 형 변수의 이해 2014.06.14 465