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;  
}
相关推荐
csbysj20201 分钟前
Web 品质样式表:构建高效、美观的网页设计指南
开发语言
小白学大数据3 分钟前
企业精准数据分析双路径对比:运营商大数据与 Python 爬虫技术选型与实践
大数据·开发语言·爬虫·python·数据分析
Hello!!!!!!7 分钟前
C++基础(五)——屏幕和文件输入输出
开发语言·c++·算法
ytttr8739 分钟前
C++ LZW 文件压缩算法实现
开发语言·c++
1candobetter13 分钟前
JAVA后端开发——多模块项目重命名体系解析
java·开发语言·intellij-idea
citi13 分钟前
OpenViking 本地搭建指南
开发语言·python·ai
AI玫瑰助手16 分钟前
Python基础:列表的切片与嵌套列表使用技巧
android·开发语言·python
Rnan-prince17 分钟前
Count-Min Sketch:海量数据频率统计的“轻量级计数器“
python·算法
Bat U20 分钟前
JavaEE|多线程(四)
java·开发语言
白日梦想家68121 分钟前
实战避坑+性能对比,for与each循环选型指南
开发语言·前端·javascript