2017-12-29 3 views
-4

저는 C++을 처음 접했고 함수/생성자의 매개 변수로 배열에 관한 질문을 받았습니다. 나는이 두 가지 방법으로 배열을 선언하는 것이 가능하다는 것을 깨달았다 (아마 내가 전에 보지 못했지만, 이는 더있다) :
1.C++에서 대괄호를 사용하거나 사용하지 않고 배열을 선언 할 때 차이점이 있습니까?

void foo(int arr[]); 

2.

void foo(int arr); 

두 경우 모두 arr은 다음과 같은 방법으로 사용할 수 있습니다.

arr[0] = 1; 

하지만 그 차이점은 무엇입니까? 아니면 그냥 명확한 문제입니까?

+2

'['과'] '가 각괄호로 불리는 것을 들어 본 적이 없기 때문에 사람들은 단지 "대괄호"또는 "대괄호"라고 부릅니다. 가끔 '괄호'라고하는 '<' and '>'이 들리는 경우가 있습니다. – byxor

+2

이들은 대괄호 *가 아닙니다 * 각괄호 *입니다. :) – Galik

+5

아마도 숫자 2에서'(int * arr)'을 의미할까요? – Grantly

답변

1

차이점은 하나는 변수이고, 다른 하나는 배열입니다.

void my_func(int array[]); // Function with array parameter. 
void your_func(int variable); // Function with variable parameter. 

표기법 다음 v 변수가 배열이나 포인터가 아니기 때문에

int v; 
v[5] = 6; 

은 컴파일 오류 또는 경고를 생성합니다.

관련 문제