问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

通过传送地址值,直接在被调用函数中直接改变实参。是怎么改变的?

发布网友 发布时间:2023-07-08 17:55

我来回答

3个回答

热心网友 时间:2023-10-22 00:59

确实是只能单向传递(在C语言),不矛盾。

如果直接传值(void swap(int a,int b)),那么无论在函数里如何修改这个值,都修改的是函数里那个变量的值,不会影响外面。

如果传地址(void swap(int*a,int*b)),那么函数拿到这个地址就可以修改这个内存地址中的数据,退出函数后原来变量的内存地址中的数据就改变了。


所以,swap函数里的变量值无论如何都传递不到主函数的,传址的时候是通过地址修改了主函数里的数据。


附图1,传值为什么改不了


附图2,传址为什么能改

热心网友 时间:2023-10-22 00:59

swap是典型的解释指针用法的教科书例子。。。

如果不用指针,则swap函数的作用仅限于函数内。。。swap(int a,int b)中的a,b的作用域只在函数内,在函数外部是看不到的,a=x,b=y时,传递的是x,y的值,a,b的值改变了,但x,y的值没有变,而函数返回只能返回一个对象,不能同时返回两个对象,也无法把改变后的a,b同时赋值回给x,y。所以在这里是无法实现函数功能的。。。

而swap(int* a,int* b)中a是指针变量,记录的是一个内存地址,a=&x的意思是取x变量的内存地址给a,这样a和&x是同一个地址,*a和x是同一个实际内容的两个名字。。。操作*a就等于操作了x。。。

呃,通俗点的解释就是:
值传递等于克隆,再造了一个和你一模一样的人,但是把那个人怎么操作,对你本身也没影响。。。
指针传递等于给你取了一个新名字,把这个新名字代表的人进行操作,实际就是对你本身进行操作。。。

热心网友 时间:2023-10-22 01:00

关键是传指针或者引用,还是传值,前三个就不说了,不管传指针还是引用,都是这个结果,关键是(4)的输出,因为你传的是指针,所以,在函数内部,变量的值变了,在函数外部有效,如果你去掉*指针标志,估计就还是输出x=30,y=20追问能不能讲解一下swap函数里的变量值是怎么传递到主函数的,求过程,通俗点说或者画个图什么的告诉我主函数里的xy怎么改变的,麻烦了

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
Linux系统安装FTP服务器 Linux系统的网络文件共享 建筑的七盏明灯的内容简介 面向对象设计七大原则 简单说 交互设计七大定律 交互设计的“根”——七大定律 交互设计原则和理论2——七大定律 七大设计原则 附近的加油站有哪些 附近的加油站有哪些地方 qq飞车手游未成年消费退款自己能退吗 你是我的王小贱什么意思啊 你是我的王牌什么意思? 月歌行陆离的噬魂咒什么时候解了 求一本小说:女主是从古代一直活到现代的,好像是因为男主把什么封印在女主体内她才能一直长生不老,男主 忘记书名了,看了前面的一点,女主26年后重生到一个小宫女身上,叫晨曦吧,来复仇的貌似,谁知道书名啊... 求部重生文,女主因父亲迷信被赶出家门,进宫当宫女,在南宫伺侯废太子,女主姓苏, 有个小名叫娃娃 女主重生,被太监选进宫当宫女,救了被欺负的皇子,求书名 梦见姐姐离婚又结婚 新时期,我们的好老师应该具备哪些品质? 新时期教师应具备怎样的素质 奥妙消毒液的对氯间二甲苯酚含量 一首粤语歌 是男的唱的 歌词里好像有是我的错 结尾有yayiyahu 很好听的男声。 CT结果为:肾上腺区腺瘤可能性大。还需要继续检查吗? 粤语歌 歌词*是 是我的错 什么什么的错 然后是什么什么你我 谁知道是什么歌啊?帮帮忙呗 天皇令厉害还是玉皇令牌厉害 我不能原谅我自己,好像全都是我的错用广东话怎么说 天庭四大帝各是谁 是我的错不接你电话别生气了粤语怎么说 刘龑:汉高祖,南汉初代皇帝,谥号天皇大帝 如何通过被调函数修改主调函数普通变量的值?请举个例子说明 奇怪的运动 第二部 函数调用时,基本的参数传递方式有传值与传地址两种,(16)。A.在传值方式下,形参将值传给实参 求“网王之奇怪的运动第二部”86章及以后+番外 求教大神指针按值传递和按址传递 网王《奇怪的运动》第二部,需完结 四年级下册快乐读书吧十万个为什么 雪天使的男主角的真实姓名叫什么 雪天使的男主角叫什么 《雪天使》里面的纪腾的扮演着Toro是不是就是范逸臣? steam 刚买的英雄无敌7,请问怎么设置繁体中文 消防检测从业资格证书查询 请问一下小孩的衣服袖子(深紫色)短了换一个什么颜色好看而且耐脏呢? 雪天使里女主角叫什么名字??? 消防设施操作员证书考试时间2022 多久出成绩 夏天容易出汗穿什么颜色短袖好 请问办中药饮片加工厂需要什么条件? 有谁知道电视剧<雪天使>的主题叫什么名字? 中药材加工包装厂需要办理什么证件(简单的来说,就是药材装进包装盒,贴上自己的商标) 魔法门之英雄无敌7怎么设置中文