본문 바로가기

C, C++

배열 포인터 함수 인수

함수 인수를 int ar[] 형식으로 지정하면 배열만 전달 가능한 것이 아니라 포인터를 전달 가능하다는 뜻입니다.

즉, int* ar과 뜻이 같습니다.

void Func(int ar[]) { 
}

그리고 [] 안에 숫자를 무엇을 쓰든 상관없이 무조건 똑같은 포인터로 전달되기 때문에 실제로 프로그램에 영향을 끼치지 않습니다.

void Func(int ar[3]) {//int ar[]과 int* ar과 같습니다. 
}

그렇지만 암묵적으로 함수에 배열을 전달해야 된다는 것을 표시하기 위해서 이런 표기법을 사용하는 것입니다.

 

그리고 함수 인수에 배열 포인터를 전달할 수 있는데 마찬가지로 int ar[][3]int (*ar)[3] 또는 int ar[(숫자)][3]과 같습니다.

int Func2(int ar[][3]) { 
}

void main() {
	int ar[2][3];
    Func2(ar);
    
    int (*ar2)[3] = ar;
    Func2(ar2); 
}

'C, C++' 카테고리의 다른 글

#include  (0) 2019.12.11
함수 호출 규약  (0) 2019.12.10
포인터 배열과 배열 포인터  (0) 2019.12.08
가변 인수 함수  (0) 2019.12.07
함수 디폴트 인수  (0) 2019.12.05