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;  
}
相关推荐
Cthy_hy14 分钟前
拓扑排序超详解:原理 + Kahn 贪心算法
python·算法·贪心算法
LSssT.24 分钟前
【01】Python 机器学习
开发语言·python
三品吉他手会点灯41 分钟前
C语言学习笔记 - 43.运算符与表达式 - 运算符1 - 运算符的分类和简单介绍
c语言·笔记·学习·算法
l1t1 小时前
DeepSeek总结的使用实体-组件-系统和基于存在性处理进行Python编程39-40
开发语言·python
VkN2X2X4b1 小时前
算法复杂度的实验验证与误差分析的技术8
算法
其利天下技术1 小时前
风扇灯无刷电机自适应算法实战指南
算法·cocos2d·无刷电机自适应算法·bldc驱动自适应算法·其利无刷电机驱动算法
8Qi81 小时前
LeetCode 494:目标和(Target Sum)—— 题解 ✅
算法·leetcode·职场和发展·动态规划·01背包
曾阿伦1 小时前
Python 搭建简易HTTP服务
开发语言·python·http
YG亲测源码屋1 小时前
java配置环境变量、jdk环境变量配置、java环境变量设置方法
java·开发语言
MIUMIUKK1 小时前
从语法层面,看懂 Python 的特殊处
java·开发语言·python