开发者

C语言之地址传递和引用传递的问题

目录
  • C语言地址传递和引用传递
    • 函数的参数传递方式有两种
  • 总结

    C语言地址传递和引用传递

    函数的参数传递方式有两种

    • 一种是普通变量传递数值
    • 另一种为使用指针变量传递地址

    如下列程序,程序扩展名为C

    //本程序名为:地址传递.c
    #include<stdio.h>
     
    void exchg(int *px,int *py){
    //此类是针对地址处的数值进行变化,指针关系不动	
    	int tmp=*px;
    	*androidpx=*py;//地址处的数值变化 
    	*py=tmp;
     
    //此类仅仅转换地址,地址处的数值并无变化 
    /* 
    int *tmp;
    tmp=px;
    px=py;
    py=tmp;
    	*/ 
    }
    int main()
    {
    	int a=4,b=6;
    	exchg(&a,&b);
    	printf("a=%d,b=%d。\n",a,b);
    return 0; 
    } 

    此程序中,输出结果为a=6,b=4。

    实现数值转换。

    参数传递中还有一种被称为是“引用传递”,目前C语言不支持该类型的传递,但是C++支持。

    看下列程序:

    //本程序名为:引用传递.cpp
    #include <stdio.h>
     
    int exchg(int &x,int &y){
    	int tmp=x;
    	http://www.devze.comx=www.devze.comy;编程
    	y=tmp;
    	printf("x=%d,y=%d\n",x,y);
    	return 0;
    }
     
    int main(){
    	int a=6,b=4;
    	printf("a=%d,b=%d\n",a,b);
    	
    	exchg(a,b);
    		printf("a=%d,b=%d\n",a,b);
    	
    	return 0; 
    	
    } 

    此程序代码中exchg(int &x,int &y)函数会将a,b分别代替x,y,此时x,y分别引用了a,b变量。

    此二类有关函数中的地址传递php和引用传递务必熟练掌握领会。

    总结

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程客栈(www.devze.com)。

    0

    上一篇:

    下一篇:

    精彩评论

    暂无评论...
    验证码 换一张
    取 消

    最新开发

    开发排行榜