공부/c언어
[c언어] 포인터를 인자로 사용하는 함수 호출
bugwasd
2011. 6. 10. 20:03
값에 의한 호출과 주소에 의한 호출의 차이점에 대해 알아보는 프로그램
두개의 값을 함수에 전달하여 서로의 값을 바꾸는 프로그램
#include <stdio.h>
void swap1(int i, int j);
void swap2(int *i, int *j);
int main(void)
{
int i=30, j=80;
int *pi, *pb;
pi=&i;
pb=&j;
swap1(i,j);
printf("main : i=%d, j=%d \n\n", i, j);
swap2(pi,pb);
printf("main : i=%d, j=%d \n\n", i, j);
return 0;
}
void swap1(int i, int j)
{
int temp;
temp=i;
i=j;
j=temp;
printf("call swap1: i=%d,j=%d \n", i, j);
}
void swap2(int *i, int *j)
{
int temp;
temp=*i;
*i=*j;
*j=temp;
printf("call swap2: i=%d,j=%d \n", *i, *j);
}
// 실행 결과
두개의 값을 함수에 전달하여 서로의 값을 바꾸는 프로그램
#include <stdio.h>
void swap1(int i, int j);
void swap2(int *i, int *j);
int main(void)
{
int i=30, j=80;
int *pi, *pb;
pi=&i;
pb=&j;
swap1(i,j);
printf("main : i=%d, j=%d \n\n", i, j);
swap2(pi,pb);
printf("main : i=%d, j=%d \n\n", i, j);
return 0;
}
void swap1(int i, int j)
{
int temp;
temp=i;
i=j;
j=temp;
printf("call swap1: i=%d,j=%d \n", i, j);
}
void swap2(int *i, int *j)
{
int temp;
temp=*i;
*i=*j;
*j=temp;
printf("call swap2: i=%d,j=%d \n", *i, *j);
}
// 실행 결과