鱼C论坛

 找回密码
 立即注册
查看: 1443|回复: 11

[已解决]传引用报错,找不到错误在哪,求助~

[复制链接]
发表于 2020-1-9 14:20:34 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x

int chageA(int *px)
{
    *px = 12345;
}


int main()
{
    int a ;
    chageA(a);

    cout << a<<endl;
    return 0;
}

小甲鱼视频里说,就算 chageA(&a)变为 chageA(a),计算机也可以直接把a识别为传地址,但是计算机报错了:

"int" 类型的实参与 "int *" 类型的形参不兼容
“int chageA(int *)”: 无法将参数 1 从“int”转换为“int *”

这个传引用是怎么个弄法,不懂了。。。
最佳答案
2020-1-9 15:02:30
fiverhythm 发表于 2020-1-9 15:00
视频里就是这样写的啊??

我不信,截图看看,给个视频链接也行,指明几分几秒
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-1-9 14:24:28 | 显示全部楼层
你这个a是数组还是啥呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-1-9 14:31:54 | 显示全部楼层
最后的魁拔 发表于 2020-1-9 14:24
你这个a是数组还是啥呢

就只是一个整数啊?就算我初始化了这个整数也是一样报错。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-1-9 14:52:43 | 显示全部楼层
我肯定书上一定不是这么写的,你又在探索事物的本质吗?
老老实实,先学加减法,再学乘除法
#include <iostream>

int chageA(int &px)
{
        px = 12345;
        return 0;
}


int main()
{
        int a;
        chageA(a);
        std::cout << a << std::endl;
        return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-1-9 15:00:19 | 显示全部楼层
人造人 发表于 2020-1-9 14:52
我肯定书上一定不是这么写的,你又在探索事物的本质吗?
老老实实,先学加减法,再学乘除法

视频里就是这样写的啊??
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-1-9 15:02:30 | 显示全部楼层    本楼为最佳答案   
fiverhythm 发表于 2020-1-9 15:00
视频里就是这样写的啊??

我不信,截图看看,给个视频链接也行,指明几分几秒
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-1-9 15:03:22 | 显示全部楼层
传引用是这么写的:
int chageA(int &px)
{
    px = 12345;
}


int main()
{
    int a=0 ;
    chageA(a);

    cout << a<<endl;
    return 0;
}

你是在哪个视频上看的?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-1-9 15:08:22 | 显示全部楼层
Croper 发表于 2020-1-9 15:03
传引用是这么写的:

你是在哪个视频上看的?

chageA还返回int
这样写报错
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-1-9 15:21:20 | 显示全部楼层
人造人发表于 2020-1-9 15:03
chageA还返回int
这样写报错

。。。我都没看清。。直接改了下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-1-9 15:29:36 | 显示全部楼层
Croper 发表于 2020-1-9 15:21
。。。我都没看清。。直接改了下

我是直接复制到vs改的,改完直接编译,报错,一看发现chageA还要返回一个int,然后直接return 0;
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-1-9 15:49:41 | 显示全部楼层
人造人 发表于 2020-1-9 14:52
我肯定书上一定不是这么写的,你又在探索事物的本质吗?
老老实实,先学加减法,再学乘除法

是我错了,我仔细看了视频,传引用不能用 void f(int * x),而是要用 void f(int &x),但是传地址是用 void f(int * x),所以关键倒不是返回值的问题,是里面参数设置

在里的鞭策下,我终于找到问题所在了,谢谢~~

但是,我真不是跳过+-法,而是边学边去提出疑问,探究到底是什么
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-1-9 15:57:08 | 显示全部楼层
fiverhythm 发表于 2020-1-9 15:49
是我错了,我仔细看了视频,传引用不能用 void f(int * x),而是要用 void f(int &x),但是传地址是用 vo ...

学编程一定要认真,对于初学者,95%的错误都是不认真造成的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-10-5 07:16

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表