c/c++传值和传引用的区别

传值

cpp 复制代码
#include<stdio.h>

void increment(int x) {
    x++;
}

int main() {
    int num = 5;
    increment(num);
    printf("num %d", num);

    return 0;
}

这段代码的目的是增加num的值,但在increment函数中使用的是传值方式传递参数,所以numincrement函数中只是被复制了一份,对复制的值的增加不会影响到原来的num。因此,即使在increment函数中增加了x的值,num的值在main函数中仍然是5。要使increment函数能够真正地增加num的值,可以通过传递指针的方式修改num的值。下面是修改后的代码:

cpp 复制代码
#include<stdio.h>

void increment(int* x) {
    (*x)++;
}

int main() {
    int num = 5;
    increment(&num);
    printf("num %d", num);

    return 0;
}

这个修改后的版本中,increment函数接受一个指向整数的指针,通过这个指针可以直接修改num的值。在调用increment函数时,使用&num来获取num的地址,这样increment函数中对x的操作就会直接影响到num的值。

相关推荐
炸膛坦客几秒前
单片机/C语言八股:(十三)C 语言实现矩阵乘法
c语言·开发语言·矩阵
一个有毅力的吃货8 分钟前
这个SKILL打通了AI写公众号文章的最后一公里
css·算法
free-elcmacom12 分钟前
C++ 函数占位参数与重载详解:从基础到避坑
java·前端·算法
Frostnova丶15 分钟前
LeetCode 1415. 长度为 n 的开心字符串中字典序第 k 小的字符串
数据结构·算法·leetcode
美好的事情能不能发生在我身上15 分钟前
Leetcode热题100中的:技巧专题
算法·leetcode·职场和发展
荣光属于凯撒17 分钟前
P15755 [JAG 2025 Summer Camp #1] JAG Box
c++·算法·贪心算法
郝学胜-神的一滴25 分钟前
CMake:解锁C++跨平台工程构建的核心密钥
开发语言·c++·职场和发展
AI科技星31 分钟前
基于v≡c空间光速螺旋量子几何归一化统一场论第一性原理的时间势差本源理论
人工智能·线性代数·算法·机器学习·平面
佑白雪乐33 分钟前
C++标准总结+VSCode使用+MinGW
开发语言·c++·vscode
云泽80835 分钟前
蓝桥杯算法精讲:哈夫曼编码的贪心思想与落地实现
算法·职场和发展·蓝桥杯