发新帖我要提问
12
返回列表
打印
[应用相关]

C语言规则很简单:所有参数都是"传值调用"

[复制链接]
楼主: LOVEEVER
手机看帖
扫描二维码
随时随地手机跟帖
21
sesefadou| | 2024-10-23 20:14 | 只看该作者 回帖奖励 |倒序浏览
函数可以独立于调用者工作,不需要知道调用者的上下文。

使用特权

评论回复
22
mikewalpole| | 2024-10-23 20:42 | 只看该作者
当数组作为函数参数时,函数接收到的是数组的首地址,这意味着函数内部可以通过这个地址访问和修改数组元素,这种修改会影响到函数外部的数组。

使用特权

评论回复
23
hilahope| | 2024-10-23 21:01 | 只看该作者
函数不能意外地修改调用者的变量,这有助于避免一些难以追踪的错误。

使用特权

评论回复
24
wilhelmina2| | 2024-10-23 21:24 | 只看该作者
对于结构体和联合体类型的参数,如果它们是通过值传递的,那么整个结构体或联合体的内容都会被拷贝到函数内部。

使用特权

评论回复
25
benjaminka| | 2024-10-23 22:00 | 只看该作者
在C语言中,函数参数确实是通过传值调用(call by value)的方式进行传递的。这意味着当一个函数被调用时,实际参数的值被复制到形式参数中。

使用特权

评论回复
26
sesefadou| | 2024-10-24 21:31 | 只看该作者
在函数内部修改调用者的变量,可以使用指针。通过传递变量的地址,函数可以修改原始变量的值。

使用特权

评论回复
27
mattlincoln| | 2024-10-25 08:37 | 只看该作者
指针本身是通过值传递的(即传递指针的副本),但指针所指向的数据并不是。因此,通过指针可以在函数内部修改调用函数中的实际数据。

使用特权

评论回复
28
burgessmaggie| | 2024-10-25 09:41 | 只看该作者
为了克服这些缺点,C语言提供了指针和引用作为替代方案。通过传递变量的指针,函数可以修改原始变量的值。

使用特权

评论回复
29
jimmhu| | 2024-10-25 13:27 | 只看该作者
在C语言中,数组名在大多数情况下会被编译器解释为指向数组首元素的指针。

使用特权

评论回复
30
geraldbetty| | 2024-10-25 14:09 | 只看该作者
如果需要在函数内部修改外部变量,必须使用指针作为参数。

使用特权

评论回复
31
pentruman| | 2024-10-25 14:41 | 只看该作者
在 C 语言中,虽然大部分情况下函数参数是传值调用,但存在一种特殊情况,即当传递数组作为函数参数时,实际上传递的是数组首元素的地址,这属于传址调用的一种形式。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则