C++ 배열 초기화

2014.06.14 09:59

엘카 조회 수:627

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

  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 926
42 구조체의 선언과 데이터 입·출력 2014.06.15 3080
41 함수 포인터 2014.06.15 438
40 배열과 포인터 2014.06.15 402
39 포인터 연산 2014.06.15 383
38 포인터 변수 2014.06.15 411
37 데이터 정렬 2014.06.15 422
» 배열 초기화 2014.06.14 627
35 2차원 배열 2014.06.14 667
34 문자열 처리 함수 2014.06.14 407
33 문자열 입출력 함수 2014.06.14 435
32 접근 수정자 2014.06.14 819
31 전역 변수 2014.06.14 305
30 지역 변수(local variable) 2014.06.14 291
29 변수와 메모리 저장 위치 2014.06.14 423
28 비트 연산자 2014.06.14 284
27 관계 연산자와 논리 연산자 2014.06.14 467
26 증감 연산자 2014.06.14 316
25 printf() 함수의 형식 지정자 2014.06.14 7520
24 열거 형 변수의 이해 2014.06.14 465