2013. 4. 29. 16:44
다음의 내용은 Rushmo에서 포인터 교육 자료로 만든 내용입니다.
가져 가실때는 이 정보 남겨 주시는것이 예의 겠지요 ^^
Call by Value : 값의 복사에 의한 함수 호출
Call by Reference : 주소값을(포인터) 파라메터로 하는 함수의 호출
아래 코드를 보자. ( 여기까지 이해가 되면 pointer의 90%는 이해 했다고 보면 됨 ^^ )
int CallByValue(int a, int b) // 스택 메모리에서 복사가 이루어진다.
{
a = a + b ;
return a;
}
int CallByReference(int * a, int * b) // 스택 메모리에서 참조가 이루어 진다.
{
*a = *a + *b // 실제 데이터를 변경
return *a;
}
void PointerStudy_5()
{
int A=1, B=2;
printf("return = %d \r\n",CallByValue(A,B));
printf("A=%d, B=%d \r\n", A, B );
printf("return = %d \r\n",CallByReference(&A,&B));
printf("A=%d, B=%d \r\n", A, B );
}
위의 내용을 보면
일반적 함수의 호출인 CallByValue()와 달리 CallByReference()에서는 파라메터를 포인터로 받게 된다.
또한 함수의 호출 시에 & 를 이용해서 주소를 넘겨 주게 된다.
댓글 없음:
댓글 쓰기