관리 메뉴

ComputerVision Jack

[C프로그래밍 Chapter11] 본문

Programming Language/C Programming

[C프로그래밍 Chapter11]

JackYoon 2020. 1. 31. 12:44
반응형

[함수 인자 배열 전달]

함수의 인자 전달 방법 : 복사

함수호출 시 전달되는 인자의 값은 매개 변수에 복사된다.

실제로 전달되는 것은 던져주는 매개 변수가 아닌, 매개변수에 저장된 값이다.

 

매개변수로 배열을 선언할 수 없다. 

배열을 넘겨 받으려면 배열의 주소 값을 전달 받아야 한다.

 

배열을 함수 인자로 전달하는 방법

포인터 변수를 사용하여 매개 변수로 던져준다.

void ShowArayElem (int * param, int len) { ..... }

void ShowArayElem(int  param[], int len) { ........}

[Call-by-value & Call-by-reference]

call-by-value : 함수 호출시 단순히 값 전달

call-by-reference : 메모리 접근에 사용되는 주소 값 전달

 

void Swap(int num1, int num2){

    int tmp = num1;

    num1 = num2;

    num2 = tmp;

}

#call-by-value로 구현한 swap함수. 함수내에선 값이 변경되지만, 함수를 탈출하면 값이 변경되지 않는다.

 

void Swap(int * num1, int * num2){

    int tmp = *num1;

    *num1 = num2;

    *num2 = tmp;

}

#call-by-reference구현, 함수내에서 조작이 이루어지면 함수를 탈출해도 값이 변경된다.

 

scanf_s함수 호출시 &연산자를 붙이는 이유. 주소를 참조해 값을 대입하기 위함.

[포인터 대상의 const선언]

const선언은 포인터 변수 대상으로 선언가능하다.

const int * ptr = & num;

#포인터 변수 ptr을 이용해서 ptr이 가리키는 변수에 저장된 값을 변경하는 것을 허용하지 않겠다.

 

 

반응형

'Programming Language > C Programming' 카테고리의 다른 글

[C프로그래밍 Chapter13]  (1) 2020.02.03
[C프로그래밍 Chapter12]  (0) 2020.02.01
[C프로그래밍 Chapter10]  (0) 2020.01.31
[C프로그래밍 Chapter9]  (0) 2020.01.30
[C프로그래밍 Chapter8]  (0) 2020.01.30
Comments