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

形参不能改变实参,为什么在用指针传递数值的时候又可以改变呢?183

发布网友 发布时间:2023-10-21 02:05

我来回答

5个回答

热心网友 时间:2024-12-01 04:41

形参其实是在把实参传递给子函数的时候定义了一个新的变量,但是这个变量的值和实参相等

所以在子函数里 无论怎么修改都不会影响到调用它的函数的实参的值

在用指针做参数的时候 因为传递的不是值本身,而是它所对应的地址,我们改变值的时候是改变那个地址里的值 所以 传递指针的话 就能改变值了

如果你希望在子函数里可以修改调用它的函数的值的话你可以使用引用函数

就比如
#include<stdio.h>
void fun(int &x)
x = x + 1;
void main()
{
int a = 5;
fun(a);
printf("%d",a);
}

就是在参数前加了一个&就行了

热心网友 时间:2024-12-01 04:41

楼主你好,要理解这个必须理解一个问题,就是指针的定义。指针自己是有一个存储空间的,里面存的是被指的一个数(如a)的地址。也就是说指针中存的是a的地址。调用函数的时候,通过指针找到a的地址,然后对a的值进行改变,也就改变了a的值。
其二是,我们普通的赋值(主函数中),a=2,其实并不是对a赋值,a只是一个代号,a是指向a所在的地址,a只是一个入口,就是对a所在的地址中的存的数据进行了改变。
如果在讲a作为实参传数据给形参b,这样的话,就是把a地址中的数据传给了b,调用函数中对b的赋值等,仅仅是影响到了b中的值,而没有影响到了a的值。

形象的说吧,指针到最后是一个东西,不管a还是b对这样东西做修改,都会改变。而普通的是两样东西,b做修改的仅仅只是b的东西,跟a的没有关系。

热心网友 时间:2024-12-01 04:42

是啊,形参不可能改变实参,可你传递指针,实际上就是相当于把这个参数实际地址给他了,而不是一个拷贝,穿指针和穿实参的意义是一样的,在一些没有指针的语言 用 (ref 参数)来传递实参,实际传的就是指针

热心网友 时间:2024-12-01 04:42

我谈谈我的看法,请多包涵。
首先搞清内存。内存里面的东西是不变的,假设有两个地址,地址为1的其数值为10,地址为2的其数值为20。而a和b只是从其中取值,并且p1,p2各是其地址,(虽然数值上p1,p2与1和2相等,但其本质并不同,也就是其服务的对象不同。)现在p1,p2变了,也就是a和b取值的位置变了,所以其最后的数值变了,视觉上就形成了a和b实参交换数值的结果。!
这是我的理解,是基于内存的知识理解。

热心网友 时间:2024-12-01 04:43

我说一下我的理解,以钥匙和锁为举例
值(锁):
当A门有一把锁A(值),B门复制A门一样的锁,不管以后B门的锁如何改变,都不会影响A门。
指针(指针);
这种情况下,只有一个A门,传送指针就好像复制了A门的钥匙A,我叫做B钥匙。这样我有了A门的钥匙B就可以随意的改变门锁A了(值)。
这是我的理解,欢迎指正。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
玩GTA4时我的画面看别的地方都是黑的就只有我这一小范围能看的见!怎么... 金貂换酒的意思金貂换酒的近反义词 4.5×9/9等于几分之几? 9-3×5/9怎么计算? 0.3*5/9等于几分之几? "过了这个村就没了这个店 "的下一句是什么? 过了这个村没这个店下一句怎么接搞笑 过了这个村就没有这个店的下一句 “人权”是什么意思? 袁天沛个人作品 为什么在函数中改变形参值能改变实参值?C++1 07版excel表匹配问题 。。。急!!! 广州市花都区属于什么流域? 上三年度是怎么界定 饮水机出租。注册商标属于哪一类? 四川省宜宾市有史以来最高气温是哪年,多少度4 全球公爵有什么用 抖音提示的全球公爵是啥东西 靠谱吗 固安英国宫文景园房价,现在首付多少 手机和银行卡如何绑定在一起? 100克无糖爆米花的热量是多少20 有什么方法可以让一直不被封?105 ...内存条,但是如果插4条内存条,就开不了机,即是开机没反应, 普通话等级考试,最高是几等接下来有又几等? 柳州有几座桥313 柳州大龙潭的风雨桥有多长14 从柳工到环江滨水大道风雨桥有多远 北京上班,想在固安买房,英国宫5期的房子,但现在的价格已经涨...12 通用人工智能就是强人工智能。() 计算机二级C语言,,“改变函数形参的值,不会改变对应实参的值... 求一条SQL更新语句,如图,把“物料收发表”对应物料的最新单价更新到“最... 柳州鹧鸪江大桥到观塘大桥多远1 柳州市航领路8号到柳北区鹧鸪江有多远1 按27%交的养老保险 乙二醇库存哪个网站查 字母y g怎么写好看?在线等。5 电影新白发魔女婷婷扮演者 怎么用手机绑定银行卡305 如何与老外进行英语商务谈判1 家里只有面粉,能做什么吃? 还要做法。。。。571 求使命召唤1,2,3,4代的中文硬盘版下载地址,要文件齐全的,谢谢!_百度... 怎样把银行卡和手机绑定起来1440 怎么把银行卡和手机绑定 ,482 全身四毛四肢(头)二果三叶三树跟。指什么生肖动物?1 论语里有哪些著名的句子4565 优盘和硬盘有什么区别?3 埃及金字塔到底是由谁建造的?麻烦告诉我 好词好句好段摘抄大全小学18118 院内可以栽百日红花树吗? ps3无线手柄不能无线使用了