函数地址传参

函数地址传参最常见的形式就是:

#include stdio.h

int main(){

int i;  

int n=6;

int a[6]={7,5,3,4,12,54};

for(i=0;i<n;i++) printf("%d ",a[i]);  

printf("\n排序之后\n");  

Sort(a,n);  

相当于是sort(&a,n);

这里是将数组a的地址传递下去,接下来承接这个地址的函数

就是对这个地址中的值进行操作,所以一般使用这个地址传参

1.是想通过另一个函数比较复杂的操作,来改变本函数中的某一个值

2.因为这种方式用到了两种函数,所以实际上利用了形参和实参

for(i=0;i<n;i++)

printf("%d ",a[i]);  

return 0;}

void Sort(int b[],int n){ 

相当于是sort(char *b,int n)

这里用指针变量进行接收,相当于下面对b的操作都是对上面的地址中的值进行的操作

所以一般是需要对一个函数的值进行频繁复杂的更改,通过地址传参的方式将这个地址传递下来

另一个函数拿到这个地址,对地址中的值随时进行更改

但是也有的地址传参不是为了拿到地址值,对地址中的值进行更改,而是只是为了拿到这个参数值 

int i,j;  

int tmp=0;  

for(i=0;i<n;i++){  

for(j=0;j<n-1-i;j++){  

if(b[j]>b[j+1]){  

tmp=b[j];  

b[j]=b[j+1];  

b[j+1]=tmp;  


猜你喜欢

转载自blog.csdn.net/chengchaonan/article/details/80671984