C语言中值传递和地址传递(指针传递的区别)

1、值传递

值传递时,函数接收到的是参数的一个副本,对副本的修改不会影响到原始变量。

复制代码
#include <stdio.h>  
  
void modifyValue(int x) 
{  
    x = 10; // 修改的是x的副本,对原始变量无影响  
}  
  
int main() 
{  
    int a = 5;  
    modifyValue(a);  
    printf("After modifyValue, a = %d\n", a); // 输出: After modifyValue, a = 5  
    return 0;  
}

2、指针传递

当通过指针传递时,函数接收到的是变量的地址,因此函数内部对指针所指向地址的修改会反映到原始变量上。

复制代码
#include <stdio.h>  
  
void modifyAddress(int *ptr) 
{  
    *ptr = 10; // 修改ptr所指向的值,即原始变量的值  
}  
  
int main() 
{  
    int a = 5;  
    modifyAddress(&a); // 传递a的地址  
    printf("After modifyAddress, a = %d\n", a); // 输出: After modifyAddress, a = 10  
    return 0;  
}
相关推荐
仟濹4 分钟前
【Java基础】多态 | 打卡day2
java·开发语言
孞㐑¥4 分钟前
算法——BFS
开发语言·c++·经验分享·笔记·算法
Re.不晚5 分钟前
JAVA进阶之路——无奖问答挑战2
java·开发语言
八零后琐话8 分钟前
干货:程序员必备性能分析工具——Arthas火焰图
开发语言·python
月挽清风9 分钟前
代码随想录第十五天
数据结构·算法·leetcode
3GPP仿真实验室10 分钟前
【MATLAB源码】CORDIC-QR :基于Cordic硬件级矩阵QR分解
开发语言·matlab·矩阵
XX風26 分钟前
8.1 PFH&&FPFH
图像处理·算法
知南x27 分钟前
【Ascend C系列课程(高级)】(1) 算子调试+调优
c语言·开发语言
忆~遂愿30 分钟前
GE 引擎与算子版本控制:确保前向兼容性与图重写策略的稳定性
大数据·开发语言·docker
NEXT0639 分钟前
前端算法:从 O(n²) 到 O(n),列表转树的极致优化
前端·数据结构·算法