[其它应用] C语言中的函数参数传递方式

[复制链接]
 楼主| 懒癌晚期患者 发表于 2025-4-6 09:25 | 显示全部楼层 |阅读模式
C语言中的函数参数传递方式,按值传递和按地址传递在内存中的表现是怎样的?
tpgf 发表于 2025-4-9 08:54 | 显示全部楼层
将结构体或数组传递给函数时,通常使用指针来代替引用传递

评论

指针携带的数据量可能会少一点  发表于 2025-4-10 21:46
Puchou 发表于 2025-4-11 09:12 | 显示全部楼层
对于大型数据结构如数组、结构体等,值传递会消耗较多的内存和时间,因为需要复制整个数据;无法在函数内部直接修改实际参数的值
Xiashiqi 发表于 2025-4-11 10:55 | 显示全部楼层
指针传递是将实际参数的地址传递给函数的形参。在函数内部,通过指针可以直接操作实际参数的内存地址,从而修改实际参数的值
小海师 发表于 2025-4-11 12:44 | 显示全部楼层
C语言本身并不支持真正的引用传递,但可以通过模拟的方式来实现类似的效果,通常是通过传递指针来实现
Haizangwang 发表于 2025-4-11 14:32 | 显示全部楼层
指针传递:
#include <stdio.h>
void modifyValue(int *x) {
    *x = 10;
}
int main() {
    int a = 5;
    printf("Before modifyValue: %d


勇敢的大白菜 发表于 2025-4-11 16:10 | 显示全部楼层
tpgf 发表于 2025-4-9 08:54
将结构体或数组传递给函数时,通常使用指针来代替引用传递

结构体的使用,需要注意哪些问题呢?
Zuocidian 发表于 2025-4-12 22:41 | 显示全部楼层
值传递是C语言中函数参数的默认传递方式,在这种方式下,函数调用时,实际参数的值会被复制一份传递给函数的形参
又见春光 发表于 2025-7-18 22:23 | 显示全部楼层
C 语言仅支持值传递,参数会复制实参值。若需修改实参,可传递指针(地址值),但本质仍为值传递。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

182

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部