如何理解C语言中的值传递和引用传递
1、时间的代码如下:通过互换值进行设置,下面的代码可以运行:#include<挢旗扦渌;stdio.h>#include&造婷用痃lt;stdlib.h>void swap(int i,int j){ int temp=i; i=j; j=temp; }main(){ int i=3; int j=5; swap(i,j); printf("i的值为:%d\n",i); printf("j的值为:%d\n",j); system("pause"); }
2、main方法中:int i=3,这句话在内存中开辟了一个空间并且保存了3同理int j=5;在swap方法中,swap(i,j)中的i,j都是从主函数中传过来的值,并且它们也创建了两个内存空间,所以它们只是在swap方法中进行了调换对main方法中的i,j没有影响。这种叫做值传递。
3、void swap(int *p,int *q拘七呷憎){ int temp=*p; *p=*q; *q=temp; }main(){ int i=3; int j=5; swap(&i,&j); printf("i的值为:%d\n",i); printf("j的值为:%d\n",j); system("pause"); }
4、int i,j;都开辟了自己的空间,并且地址不同,swap中创建p,q的时候又创建了两个空间,p中存放的是i的地址,q中存放的是J的地址*p中表示的是i的值,*q中存放的是j的值,所以其改变能够改变i,j的值
5、引用传递:就是在传递的时候传递过去的是对象,把引用传过去之后,然后再修改值,就可以完成交换,其实在转换的过程中修改的是地址值。 其实引用传递也是一个值传递,只不过其传递的是一个地址。
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
阅读量:57
阅读量:76
阅读量:50
阅读量:59
阅读量:47