Backend/C

함수 인수로 사용되는 포인터

petitCoding 2012. 4. 12. 10:26

함수 인수로 사용되는 포인터

 

C의 매개변수 전달 방식은 "값에 의한 호출(call by value)"이다.

즉, 매개변수는 함수에 오직 한 방향으로 전달된다는 것이다.

함수의 유일한 결과는 하나의 반환값 뿐이다.

 

하지만, 포인터를 사용하면 함수의 결과를 반환값을 통하지 않고도 전달할 수 있다.

C는 함수의 정보를 호출자로 넘길 수 있다.

 

아래의 소스 코드를 보자.

 

1 :  #include <stdio.h>

2 :  void inc_count(int *count_ptr); //이 함수의 매개변수는 정수가 아니고 정수형 포인터이다.

3 :
4 :  int main(){
5 :   int count = 0;

6 :   while(count<10){
7 :    inc_count(&count);

8 : /*정수의 주소값을 보내준다. 즉 , *count_ptr이 가리키는것은 count의 주소값.

9 :     직접 전달하면 원하는 결과를 얻을 수 없으므로 포인터를 넘기는 것이다.*/
10 :    printf("%d\n", count);
11 :   }

12 : return 0;

13 : }

14 : void inc_count(int *count_ptr){

15 :  (*count_ptr)++; //count_ptr이 가리키는 곳의 값을 1 증가시킨다.
16 : }

 

<결과화면>

 


 

반응형

'Backend > C' 카테고리의 다른 글

링크드 리스트 다루기  (0) 2012.04.12
Segmentation Fault  (0) 2012.04.12
포인터(pointer)란 무엇인가?  (0) 2012.04.12
Call by value & call by reference  (0) 2012.04.12
문자열의 길이를 계산하는 두 가지 방법  (0) 2012.04.12