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;  
}
相关推荐
呃呃本22 分钟前
算法题(栈)
算法
通信小呆呆29 分钟前
基于 ADMM-MFOCUSS 的捷变频雷达扩展目标稀疏重构原理
算法·重构·信息与通信·信号处理·雷达
largecode36 分钟前
如何让电话显示店名?来电显示店铺名称,提升有效接通率
java·开发语言·spring·百度·学习方法·业界资讯·twitter
xuhaoyu_cpp_java36 分钟前
SpringMVC学习(五)
java·开发语言·经验分享·笔记·学习·spring
Aurorar0rua37 分钟前
CS50 x 2024 Notes C -11
c语言·开发语言·学习方法
Dlrb121137 分钟前
C语言-指针
c语言·开发语言
橙淮39 分钟前
Java数组与链表:特性对比与应用场景
数据结构·算法
炽烈小老头41 分钟前
【每天学习一点算法 2026/05/15】被围绕的区域
学习·算法·深度优先
芜湖xin43 分钟前
【题解-洛谷】P1012 [NOIP 1998 提高组] 拼数
算法·贪心
zhangzhi19798155921 小时前
Agent Skills
开发语言·python