关于c语言 在c中调用函数时,只能把实参的值传递给形参,形参的值不能传给实参。这句话对吗?为什么?

如题所述

不对,在C语言中,传值有地址传值和参数传值,参数传值只能将实参传值给形参,所以A选项正确。C语言中的外部变量是可以在函数之间传递数据的。

C语言中的自动变量是默认的变量,实际上是函数中的局部变量,所以D选项正确。全局变量一经定义都是需要分配内存单元,在程序运行过程中自始至终都会占用固定的空间,在未知内存情况下,最好不要使用全局变量。

函数调用时,值可以双向传递,并没有限制使用全局变量还是局部变量,需要根据程序的逻辑需要进行选择。

扩展资料

C语言参数传递:

1、值传递

参数传递只把变量a的值传递给了变量p,此时变量a与变量p是值相同的两个不同变量,在内存不同的两个地址中,所以对变量p赋值只是修改了变量p的值,并不能修改变量a的值。总结一句话就是:值传递不传递变量本身,只传递变量的值。

2、引用传递

与值传递不同,func的参数是int &p,表示引用传递。如输出所示,通过引用传递,变量a的地址与变量p是相同的,也就是说引用传递把a的地址传给了变量p,所以对变量p进行赋值之后,变量a的值也改变了,因为变量a与变量p实际是同一个变量。

3、指针传递

指针传递,顾名思义,int *p表明p是一个指针变量,调用func(&a)是把变量a的内存地址传递过去赋值给指针变量p,此时指针变量p的值是变量a的内存地址,故可看到输出p为efbfde2c(变量a的内存地址)。

*p是对指针p的值(即变量a的内存地址)进行取值,相当于*&a,所以对*p进行赋值也就改变了变量a的值。

温馨提示:内容为网友见解,仅供参考
无其他回答

关于c语言 在c中调用函数时,只能把实参的值传递给形参,形参的值不能...
不对,在C语言中,传值有地址传值和参数传值,参数传值只能将实参传值给形参,所以A选项正确。C语言中的外部变量是可以在函数之间传递数据的。C语言中的自动变量是默认的变量,实际上是函数中的局部变量,所以D选项正确。全局变量一经定义都是需要分配内存单元,在程序运行过程中自始至终都会占用固定的...

关于c语言 在c中调用函数时,只能把实参的值传递给形参,形参的值不能...
不对,在C语言中,传值有地址传值和参数传值,参数传值只能将实参传值给形参,所以A选项正确。C语言中的外部变量是可以在函数之间传递数据的。C语言中的自动变量是默认的变量,实际上是函数中的局部变量,所以D选项正确。全局变量一经定义都是需要分配内存单元,在程序运行过程中自始至终都会占用固定的...

“c语言中只能把实参的值传送给形参,不能把形参的值反向传给实参...
c语言中只能把实参的值传送给形参,不能把形参的值反向传给实参……这句话,指的是在函数的调用过程中,实参与形参之间,进行的是值传递(这是相对于址传递而言的),在这个过程中,实参将自身的数值传递给形参,形参只是实参的在堆栈中新开辟一个副本,对形参的操作不会影响实参!这句话与return没有关...

以下对C语言函数的有关描述中,正确的是()。
调用函数时,只能把实参的值传给形参,形参的值不能传送给实参===在C语言中调用函数时,只能把实参的值传给形参,形参的值不能传送给实参===在被调用的函数中又调用另外一个函数,称“嵌套调用”

C语言规定,调用一个函数时,实参变量和形参变量之间的数据传递方式是什么...
函数只有两种传递方式:1、值传递,又称单向传递,只能把实参数值传给形参 ,形参最后的结果不影响实参(形参改变大小 ,实参大小不变)。2、址传递,通过指针,把实参的地址给形参,形参的大小可以影响实参。

C语言中参数传递有什么特点
C语言中参数传递 分类及特点:1、值传递:在函数调用时,发生的数据传送是单向的。 即只能把实参的值传送给形参,而不能把形参的值反向地传送给实参。2、地址传递:可以实现地址互换。3、引用传递:与地址传递一样,可以实现地址互换,但该传递仅适用于C++语言。

以下关于C语言函数参数传递方式的叙述正确的是
【答案】:A 数据只能由实参单向传递给形参称为“值传递”,而不能由形参传回来给实参,A选项正确;数组名、指针等作参数,实参传递给形参的是地址值,这样形参和实参就指向同一段内存单元,在函数体内对形参数据的改变也将影响到实参。实参和形参之间不可双向传递。B、D选项错误。数据不能从形参传递给...

c语言中,函数形参和实参必须相同么
数据传递是单向的,仅能将实参的值传递给形参,而无法将形参的值反向传回实参。因此,在函数调用期间,形参值的变化不会影响实参中的值。综上所述,虽然形参和实参可以相同,但它们在作用范围、生命周期和数据传递上存在显著差异。正确理解和掌握这些特性有助于编写高效且无误的C语言程序。

C语言函数调用中形参值的变化不会传递给实参
C语言函数调用中形参值的变化不会传递给实参! 正确!形参都是数值,无论其类型是指针还是普通变量,都是值,指针变量表示地址值,普通变量表示数值。因此,他们代表的数值本身发生变化,与实参没有关系。那为什么指针会影响到实参变化呢?那是因为我们在代码中,通过传递过来的指针值,对地址中的数据进行...

请c语言高手们赐教:什么时候应注意函数实参河和形参的单向传递问题
传递给 形参 ,而形参经过改变后不会传递给实参,对 函数 而言,就是 参数 经过主调用函数传递给了 被调用函数 ,而我们知道,被调用函数除了用return 语句 返回一个值外,其余的值就不可以返回了。所以说值传递是单向传递。地址传递则解决了值传递只能返回一个值的尴尬局面。地址传递通过把传入参数的...

相似回答