C語言的函數中必不可少的就是參數傳遞,可以采用傳值和傳指針兩種方式。
1.傳值的形式:只是將參數值的拷貝傳給函數,并非參數本體如:
int test(int x,int y) { x=2*y; return x; } int main(void) { int a=0,b=5; printf("%d,%d ",test(a,b),a); return 0; }
運行結果為:
10,0
即傳值方式只可以將實參傳遞給函數,不可以改變實參本身。
2.傳指針形式:直接傳給函數的是變量的地址。
如:
int a(int b,int *c) { int i=0; for(i=0;i<4;i++) c[i]=b*i; return 0; } int main(void) { int b=2,c[4],i; a(b,c); for(i=0;i<4;i++) printf("Data is -> %d ",c[i]); return 0; }
運行結果為:
Data is -> 0
Data is -> 2
Data is -> 4
Data is -> 6
由于被調函數在參數指針的作用域之內,此時可以直接改變變量的本體。