c语言形参的值能不能传递给实参

 我来答
小鱼游戏攻略
2021-01-20 · 收集归纳智能制造、PLC、机器人内容分享
小鱼游戏攻略
采纳数:905 获赞数:390270

向TA提问 私信TA
展开全部

形参和实参拥有分别的存储空间,即便是指针传递,改变的也只可能是这个指针变量所指向的内容,而不是指针变量本身的值,也即,如有指针变量p,那对实参的变化,有可能改变的也只是*p的值,而不是p本身的值。

实参和形参在英文中,argument和parameter经常可以互换使用,但是C99标准规定了:

对于actualargument或actualparameter使用术语argument(译为实参);对于formalargument或formalparameter使用术语parameter(译为形参)。

为遵循这一规定,我们可以说形参是变量,实参是函数调用提供的值,实参被赋给相应的形参。因此,在上述示例中,times是pound()的实参,n是pound()的形参。类似地,在函数调用pound(times+4)中,表达式times+4的值是该函数的实参。

扩展资料

函数的调用

第1个函数调用是pound(times),times的值5被赋给n。因此,printf()函数打印了5个井号和1个换行符。第2个函数调用是pound(ch)。

这里,ch是char类型,被初始化为!字符,在ASCII中ch的数值是33。但是pound()函数的参数类型是int,与char不匹配。

程序开头的函数原型在这里发挥了作用。原型(prototype)即是函数的声明,描述了函数的返回值和参数。pound()函数的原型说明了两点:

-该函数没有返回值(函数名前面有void关键字);-该函数有一个int类型的参数。

cooke1234
2013-12-29 · TA获得超过6861个赞
知道大有可为答主
回答量:4617
采纳率:72%
帮助的人:3563万
展开全部
不能,形参是实参的一个副本,实参不是形参的一个副本。
但是,有些时候,我们把形参做成了一个指针类型,用来返回数据。因为,(指针型的)形参虽然是(指针型的)实参的一个副本,但是指针指向的内存是相同的。如果在函数内修改了指针指向的内存的数据的话,(指针型的)实参采用原来的地址,一样可以获得修改后的内存数据的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
antimoth
2013-12-29 · 超过36用户采纳过TA的回答
知道答主
回答量:80
采纳率:0%
帮助的人:68.8万
展开全部
看你是什么形参...
1、直接用变量传参一般是不能传递的。因为变量在传递中是两个等值的不同变量,两者互不影响。
2、如果是指针形参p,实参q,而且在被调函数中是对*p做的修改,那这时候这种修改可以传递。因为这时候是对p q指向的内存的直接修改,这种修改可以保存,从而传递出来。
3、对数组形参做的修改也可以传递。数组名是一个常指针。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
梦心天永恒
推荐于2017-11-26
知道答主
回答量:4
采纳率:0%
帮助的人:9.5万
展开全部
要看情况,行参只是实参的一个拷贝,形参改变了只是拷贝改变了,实参仍为原来的值,但是你如果用传址调用的话,把形参定义为指针变量,实参调用地址的话,单你把指针所指的变量改变,实参所对应的值也改变了
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
嵇和颂由章
2019-10-03 · TA获得超过3万个赞
知道大有可为答主
回答量:1.1万
采纳率:27%
帮助的人:813万
展开全部
形参和实参拥有分别的存储空间,即便是指针传递,改变的也只可能是这个指针变量所指向的内容,而不是指针变量本身的值,也即,如有指针变量p,那对实参的变化,有可能改变的也只是*p的值,而不是p本身的值。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式