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;  
}
相关推荐
q***d1733 分钟前
Kotlin在后台服务中的框架
android·开发语言·kotlin
周杰伦fans11 分钟前
C# 中的 `Hashtable`
开发语言·c#
习习.y16 分钟前
关于python中的面向对象
开发语言·python
lingggggaaaa16 分钟前
免杀对抗——C2远控篇&PowerShell&有无文件落地&C#参数调用&绕AMSI&ETW&去混淆特征
c语言·开发语言·笔记·学习·安全·microsoft·c#
口袋物联16 分钟前
设计模式之建造者模式在 C 语言中的应用(含 Linux 内核实例)
c语言·设计模式·建造者模式
技术净胜17 分钟前
MATLAB 基因表达数据处理与可视化全流程案例
开发语言·matlab
友友马17 分钟前
『Qt』多元素控件
开发语言·qt
hmbbcsm24 分钟前
练习python题目小记(六)
开发语言·python
前端小L41 分钟前
图论专题(十九):DAG上的“关键路径”——极限规划「并行课程 III」
算法·矩阵·深度优先·图论·宽度优先
4***V20242 分钟前
Vue3响应式原理详解
开发语言·javascript·ecmascript