2014-04-16 3 views
1

프로그래밍 클래스에서 2D 배열을 배우고 있습니다. 선생님은 설명하지 않고 무언가를 사용했습니다. 왜 우리가 그것을 사용했는지 궁금했습니다. 기호와 관련이 있기 때문에이 기호가 검색 자체에 사용되므로 Google에 검색하거나 검색하는 방법을 모르겠습니다. 어쨌든 코드가이 있었다 :중괄호 (중괄호) 사용 C++

int small[26]= {0}, large[26]={0}, i;

왜 중괄호가 0의 주위에 필요합니까?

이 코드의 일부인 프로그램은 파일을 검사하여 알파벳의 각 문자를 찾아 개별적으로 계산합니다.

+0

에 의해 초기화됩니다이 경우 X의

int x {}; 

를 쓸 수 있습니다 할당 연산자

int x { 10 }; 

없이 당신을 쓸 수 있습니다 왜 '0'이 필요한지 묻고 있어야합니다. 그렇지 않습니다. 여기에 이니셜 라이저가 있으며, 배열의 해당 항목을 초기화하기 위해 지정된 값을 사용하고, 배열의 나머지를 0 (또는 유형의 기본값)으로 초기화합니다. –

+0

그래도 여전히 그들은 어떤 목적으로 봉사하고 있습니까? – Skathix

+0

이들은 2D 배열이 아니며 일반 C 스타일 배열입니다. – blackbird

답변

2

배열이 경우에 초기화 목록을 의미한다. 5.

당신은 쓸 수

당신이 요소 1, 2, 3, 4 배열을 정의 할 예를 들어 가정 해 보자는

int a[5]; 

a[0] = 1; 
a[1] = 2; 
a[2] = 3; 
a[3] = 4; 
a[4] = 5; 

그러나 C++ 배열의 요소를 할당 할 수 있습니다 그것이 정의 될 때. 동일한 레코드가 표시됩니다

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

배열의 크기보다 작은 초기화 프로그램이 있으면 나머지 요소는 0으로 초기화됩니다. 이 경우 예

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

들어 [0]와 동일 TP 1은 [1] (2)와 동일 할 것이다되고 모든 다른 요소는 당신의 크기를 생략 할 수 0

동일 할 것이다 배열.예를 들어

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

이 경우 컴파일러는 이니셜 라이저 목록에 초기화 프로그램이있는 배열의 요소를 할당합니다. (이것은 허용되지 않는 C에서만 ++ C 유효.)

녹화

int a[5] = {}; 

0으로 초기화한다 어레이의 모든 원소

int a[5] = { 0 }; 

동등 마지막 레코드에서 첫 번째 요소는 명시 적으로 0으로 초기화되고 다른 모든 요소는 이니셜 라이저 목록의 이니셜 라이저가 지정되지 않았기 때문에 0으로 초기화됩니다.

스칼라 개체도 초기화 할 수있는 것과 같은 방법입니다. 예 :

int x = {10};

유일한 차이점은 하나의 초기화 프로그램 만 지정할 수 있다는 점입니다. 당신은, 당신은 또한 대신 중괄호가 필요한 이유를 묻는 0

1

기본적으로 로컬 범위의 일반 배열 (예 : 함수 내에서 선언 된 배열)은 초기화되지 않은 상태로 유지됩니다. 즉, 해당 요소 중 어느 것도 특정 값으로 설정되지 않습니다. 그 내용은 배열이 선언 된 시점에서 결정되지 않습니다.

그러나 배열의 요소는 선언 될 때 해당 값을 중괄호 {}로 묶어 명시 적으로 특정 값으로 초기화 할 수 있습니다. BryanChen 아래에 언급 된 바와 같이

+0

우수 답변을 주셔서 감사합니다 – Skathix

2
int Array[26]= {0}; 

0

해당 배열의 모든 요소를 ​​초기화한다

int array [constant] = {}; 

기본값은 모든 값을 초기화하는 것을

Note: int Array[26]= {1}; will initialize first element to 1 and others to 0. 
+1

참고 :'int Array [26] = {1};은 첫 요소를 1로 초기화하고 나머지는 0으로 초기화합니다. –

+0

어떻게 모든 값을 1로 초기화합니까? – Skathix

+0

두 개의 int 배열 [26] = {1,1,1,1,1 ...} 26 1 초 또는 필요한 정확한 수를 계산하는 루프를 만듭니다. – GriffinG

0

참고. int의 기본 이니셜은 0

int small[26]= {0}; 

0으로 첫 번째 숫자를 설정 및 기본 나머지를 초기화합니다. 일반적으로

: 그것은

int small[26]= {}, large[26]={}, i; 

중괄호도 간단하게 작성할 수

int array [constant] = {value initialize all indices listed here, 
         the rest are default initialized};