首页

文章

C++关于函数的传值和传地址传引用的区别?

发布网友 发布时间:2022-03-25 19:38

我来回答

3个回答

热心网友 时间:2022-03-25 21:08

你好,
函数传值,只是起到一个“传”的作用,在调用函数中修改,只会在调用函数的这个作用域中起作用。

函数传地址,一般通过传指针或传引用。它在调用函数的时候,如果改变了传入地址中的数据,即地址所指向的地址空间。

而通过传值,相当于在内存中拷贝了一份,在调用函数中,只改变了拷贝值所在的地址空间的数据,而不是改变所传入值的地址空间的数据

a1和a2都是运行了,只是a2运行的并没有改变传入的值!

如果需要还不懂,可以再来问我!追问也就是说,比如最后有一个cout<<y,那输出的是a1,但是如果没有a1的话,输出的就是a2,为什么呢?如果main里a2后面还有个a3(x,y),哪a3是根据a2运算之后的数算还是根据main最开始定义的数算呢?

追答不好意思,昨天没有上了。我给你举个列子吧!

void a1(int* x,int* y)
{
*x = *x+1;
*y = *y+1;

}
void a2(int x, int y)
{
x = x+2;
y = y+2;

}

int main()
{
int x = 3,y = 4;
a1(&x,&y); //这时是通过传地址,调用之后 x =4,y = 5
a2(x,y); //这是传值,这并没有对main中的x,y值进行修改,还是x=4,y=5
//如果还有a3,并调用了a1时,a3传的是a1处理后的x,y,跟a2无关
//如果有a3,并没有调用a1时,a3传的是开始定义的数据,跟a2无关
//也就是说a2的调用与不调用,
//并不会对main中的x,y值产生影响,而只是在a2这个函数中x,y才变化!
}

热心网友 时间:2022-03-25 22:26

传值可以说是暂时分配一个新的空间,不会改变原来的值,传引用相当于把变量的地址传过去,会改变原始的值

热心网友 时间:2022-03-26 00:00

#include<stdio.h>

void plus(int p, int *q){

    p++;
    (*q)++;
}

main(){

    int a = 1;
    int b = 1;
    
    plus(a, &b); // 把a的值和b的地址传给plus函数
    
    printf("a=%d, b=%d\n", a, b); // 经过plus处理,得到结果,a不变,b变;
}

2019哈尔滨煤气费怎么有税? 快手删除的作品如何恢复 体育理念体育理念 有关体育的格言和理念 什么是体育理念 万里挑一算彩礼还是见面礼 绿萝扦插多少天后发芽 绿萝扦插多久发芽 扦插绿萝多久发芽 炖牛排骨的做法和配料 网络诈骗定罪标准揭秘 “流水不争先”是什么意思? mc中钻石装备怎么做 为什么我的MC里的钻石块是这样的?我想要那种。是不是版本的问题?如果是... 带“偷儿”的诗句 “君不见巴丘古城如培塿”的出处是哪里 带“奈何”的诗句大全(229句) 里翁行()拼音版、注音及读音 带“不虑”的诗句 “鲁肃当年万人守”的出处是哪里 无尘防尘棚 进出口报关流程,越详细越好。谢谢大家指教。 双线桥不是看化合价升多少就标多少的吗?为什么CL2+2KI=2KCL+I2中I失... 出师表高锰酸钾有画面了吗 2021年幼儿园新学期致家长一封信 电脑屏幕一条黑线怎么办? 销售代理商销售代理商的特点 商业代理商业代理的特征 如何看微信有没有开通微众银行 为什么微众没有开户 微众银行怎么开户 微众银行APP开户流程是什么? 唐古拉山海拔唐古拉山海拔是多少 怎么看待取消跳广场舞的人的退休金 如何选购新鲜的蓝田水柿? 恭城水柿柿树作用 创维洗衣机使用教程 创维全自动洗衣机怎么使用 自动开门器 狗羊属相婚姻相配吗 3岁的小孩不会说话怎么办 3岁孩子不会说话,应该挂什么科? 3岁小孩不会说话正常吗 鹿茸炖乌鸡怎么做? 新型冠状肺炎吃什么药可以预防 冰箱上电后一直响 食品生产许可证编号开头为“ G”。 库存过期香精 猎狐点卡平台经营范围 电影代理靠谱吗 兄弟三人,有什么好的QQ网名 租赁合同书范本简单版 python关于函数的传值和传址到底是怎么回事 在VB中传值调用和传址调用的区别????? 传值和传引用,传地址的区别是什么 C语言中传值和传地址有什么差别,怎么用的 VB中数据传递的传值和传址的区别 PHP传值和传引用,传地址的区别 C语言传值和传地址的区别! 解释下 传值方式 和 传址方式 VB中传值和传地址有什么区别 VB参数参数传递中,传值与传址的区别 什么是传值,什么是传址(引用)?对此,C/C++与Java中的函数(方法)有什么不同? Java参数传递中的传值和传址的区别 C语言中传值与传址有什么区别 C 语言传址调用和传值调用有什么区别 C语言中传值和传址的区别 VB传值和传址的区别~~~ 参数传递的“传值”和“传址”有什么区别 传值和传址的区别 iPhone xs 和 iPhone xs max 到底有什么区别 苹果xs max256g多少钱 华为p10能支持40w快充吗? 华为p10支持快充吗 华为 P10有快充技术吗? 华为p10快充是多少w? 华为p10能不能66W超级快充? 华为p10有快速充电吗 华为P10是快速充电吗 华为p10能用快充吗 华为p10有超级快充吗 华为p10有快充的功能吗 华为p10可以快冲吗 华为手机P10支持快充吗 华为p10可以快充吗 华为P10能用65w快充吗? 华为p10是不是快充 华为p10用9v2A快充可以吗 华为P10可以用5A的超级快充充电器吗? 华为p10怎么开启快充 华为noav6 NFC功能在哪儿打开? 华为nova6se有nfc功能吗
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com