case1 - 효과 없는swap 함수의 호출 (Call By Value)
/* ptr_swap1.c */
#include <stdio.h>
void pswap(int *p1, int *p2);
int main(void)
{
int A=10, B=20;
int *pA, *pB;
pA=&A, pB=&B;
// 함수 호출 전
printf("pA가 가리키는 변수 : %d \n", *pA);
printf("pB가 가리키는 변수 : %d \n", *pB);
pswap(pA, pB);
//함수 호출 후
printf("pA가 가리키는 변수 : %d \n", *pA);
printf("pB가 가리키는 변수 : %d \n", *pB);
return 0;
}
void pswap(int *p1, int *p2)
{
int *temp;
temp=p1;
p1=p2;
p2=temp;
}
결과
----------------------------------------------------------------------
case2 - 더블 포인터 입장에서의 swap (Call By Reference)
/* ptr_swap2.c */
#include <stdio.h>
void pswap(int **p1, int **p2);
int main(void)
{
int A=10, B=20;
int *pA, *pB;
pA=&A, pB=&B;
// 함수 호출 전
printf("pA가 가리키는 변수 : %d \n", *pA);
printf("pB가 가리키는 변수 : %d \n", *pB);
pswap(&pA, &pB);
//함수 호출 후
printf("pA가 가리키는 변수 : %d \n", *pA);
printf("pB가 가리키는 변수 : %d \n", *pB);
return 0;
}
void pswap(int **p1, int **p2)
{
int *temp;
temp=*p1;
*p1=*p2;
*p2=temp;
}
결과
'C_C++' 카테고리의 다른 글
2차원 배열 이름의 포인터 타입 2 (0) | 2010.11.26 |
---|---|
2차원 배열 이름의 포인터 타입 (0) | 2010.11.26 |
포인터의 포인터 (0) | 2010.11.26 |
2차원 배열! 선언과 동시에 초기화 (0) | 2010.11.26 |
다차원 배열의 예 (0) | 2010.11.26 |