[c언어] 포인터를 인자로 사용하는 함수 호출

|



값에 의한 호출과 주소에 의한 호출의 차이점에 대해 알아보는 프로그램
두개의 값을 함수에 전달하여 서로의 값을 바꾸는 프로그램

#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);
}

// 실행 결과


   
  ::