값에 의한 호출과 주소에 의한 호출의 차이점에 대해 알아보는 프로그램
두개의 값을 함수에 전달하여 서로의 값을 바꾸는 프로그램
#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);
}
// 실행 결과
'공부 > c언어' 카테고리의 다른 글
[c언어] 함수 포인터를 사용하여 함수를 호출하는 방법 (0) | 2011.06.10 |
---|---|
[c언어] 포인터 배열. 여러개의 문자열을 저장 (0) | 2011.06.10 |
[c언어] 포인터에 대한 연산. 포인터 변수에 대한 덧셈 연산과 증가연산자 사용 (0) | 2011.06.09 |
[c언어] 배열과 포인터 변수에 대한 문자열 초기화와 대입 (0) | 2011.06.09 |
[c언어] 포인터와 배열. 배열이름이 포인터 상수인지, 연속된 기억공간에 저장되는지를 확인 (0) | 2011.06.09 |