C51學習心得體會,函數的傳引用調用和傳值調用方法
傳值調用建立參數的一份拷貝并把它傳給調用的函數,在調用函數中修改參數值的拷貝不影響原始的變量值;傳引用調用允許調用函數修改原始變量的值。
C語言用指針*和間接引用運算符&模擬傳引用調用,數組會自動模擬傳引用調用。傳引用調用可以在被調用函數中修改調用函數環(huán)境中的參數變量,傳值調用保護數據。
e.g.
(1)傳值調用
int cubeByValue(int);
main()
{ int num=5,result;
result=cubeByValue(num);
}
int cubeByValue(int n)
{
return n*n*n;
}
(2)傳引用調用
int cubeByValue(int *);
main()
{ int num=5,result;
cubeByValue(&num);//傳遞num的地址給nPtr
printf("%d",num);
}
int cubeByValue(int *nPtr)
{
*nPtr=*nPtr * *nPtr * *nPtr;
}
int array[size];
void modifyarray(int [],int );
voidMIDIfyarray(array,size)
{
voidswap( int *,int *);
......
}
注意:可把函數原型swap放在調用函數midifyarray中定義,如上所示,保證只能在調用函數m中才能正確地調用swap