C51學(xué)習(xí)心得體會,函數(shù)的傳引用調(diào)用和傳值調(diào)用方法
傳值調(diào)用建立參數(shù)的一份拷貝并把它傳給調(diào)用的函數(shù),在調(diào)用函數(shù)中修改參數(shù)值的拷貝不影響原始的變量值;傳引用調(diào)用允許調(diào)用函數(shù)修改原始變量的值。
C語言用指針*和間接引用運算符&模擬傳引用調(diào)用,數(shù)組會自動模擬傳引用調(diào)用。傳引用調(diào)用可以在被調(diào)用函數(shù)中修改調(diào)用函數(shù)環(huán)境中的參數(shù)變量,傳值調(diào)用保護數(shù)據(jù)。
e.g.
(1)傳值調(diào)用
int cubeByValue(int);
main()
{ int num=5,result;
result=cubeByValue(num);
}
int cubeByValue(int n)
{
return n*n*n;
}
(2)傳引用調(diào)用
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 *);
......
}
注意:可把函數(shù)原型swap放在調(diào)用函數(shù)midifyarray中定義,如上所示,保證只能在調(diào)用函數(shù)m中才能正確地調(diào)用swap