C語言按值傳遞函數
按值傳遞函數參數拷貝參數的實際值到函數的形式參數的方法的調用。在這種情況下,參數在函數內變化對參數冇有影響。
默認情況下,C編程語言使用調用通過值的方法來傳遞參數。在一般情況下,這意味著,在函數內碼不能改變用來調用所述函數的參數。考慮函數swap()的定義如下。
/* function definition to swap the values */ void swap(int x, int y) { int temp; temp = x; /* save the value of x */ x = y; /* put y into x */ y = temp; /* put temp into y */ return; }
現在,讓我們通過使實際值作為在以下示例調用swap()函數:
#include <stdio.h> /* function declaration */ void swap(int x, int y); int main () { /* local variable definition */ int a = 100; int b = 200; printf("Before swap, value of a : %d ", a ); printf("Before swap, value of b : %d ", b ); /* calling a function to swap the values */ swap(a, b); printf("After swap, value of a : %d ", a ); printf("After swap, value of b : %d ", b ); return 0; }
讓我們把上麵的代碼寫在一個C文件,編譯並執行它,它會產生以下結果:
Before swap, value of a :100 Before swap, value of b :200 After swap, value of a :100 After swap, value of b :200
這表明值冇有改變,雖然它們已經在函數內部改變。