如何理解C语言中的值传递和引用传递?

2025-10-17 13:31:28

1、时间的代码如下:通过互换值进行设置,下面的代码可以运行:

#include<stdio.h>#include<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");             }

如何理解C语言中的值传递和引用传递?

2、main方法中:int i=3,这句话在内存中开辟了一个空间并且保存了3

同理int j=5;

在swap方法中,swap(i,j)中的i,j都是从主函数中传过来的值,并且它们也创建了两个内存空间,所以它们只是在swap方法中进行了调换对main方法中的i,j没有影响。

这种叫做值传递。

如何理解C语言中的值传递和引用传递?

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");             }

如何理解C语言中的值传递和引用传递?

4、int i,j;都开辟了自己的空间,并且地址不同,swap中创建p,q的时候又创建了两个空间,p中存放的是i的地址,q中存放的是J的地址

*p中表示的是i的值,*q中存放的是j的值,所以其改变能够改变i,j的值

如何理解C语言中的值传递和引用传递?

5、引用传递:就是在传递的时候传递过去的是对象,把引用传过去之后,然后再修改值,就可以完成交换,其实在转换的过程中修改的是地址值。

     其实引用传递也是一个值传递,只不过其传递的是一个地址。

    

如何理解C语言中的值传递和引用传递?

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢