1. 程式人生 > >C語言形式引數傳遞的兩種方式

C語言形式引數傳遞的兩種方式

C語言中實際引數(實參)與形式引數(形參)之間的傳遞方式有傳值和傳地址兩種函式呼叫方式。

1.直接傳值。

直接傳值,在fun函式裡面改變a,b的值,不會改變主函式裡面a,b的值。

#include<stdio.h>
void fun(int a, int b)  // 此處a, b為形參
{
    a++;
    b++;
}
void mian()
{
    int a=1, b=2;    
    fun(a, b);  // 按傳值方式呼叫函式fun,此處a,b為實參
    printf("%d, %d\n", a, b);  // 輸出a=1, b=2
}

2.傳地址方式

在fun函式裡面改變a.b的值,主函式裡面a,b的值也會改變。

#include<stdio.h>
void fun(int *a, int *b)  
{
    *a =3;
    *b =4;
}
void mian()
{
    int a=1, b=2;    
    fun(&a, &b);  // 按傳地址方式呼叫函式fun
    printf("%d, %d\n", a, b);  // 輸出a=3, b=4
}