2 anhaoxuan anhaoxuan 于 2016.04.16 10:27 提问

C++函数传参的超简单问题

我想用程序写一个心理量表 那份心理量表有30个问题 所以我想写30个函数 把30个函数的处理结果通过按址传递的方式放到main函数下再处理 但是我写第一个函数(问题)就无法传递到main函数下 下一行开始是我的代码 请帮忙指正我的错误 谢谢!!!
#include
using namespace std;
void question1(int *p);
int main()
{
int point=0;
int *p=&point;

question1(&p);

return 0;
}

void question1(int *p)
{char option='a'||'b'||'c';
cout<<"你在看地图,或街上的指示,你会:\n";
cout<<"a 会有困难,而找人协助\n";
cout<<"b 把地图转过来,面对你要走的方向\n";
cout<<"c 没有任何困难\n";
cin>>option;
if(option=='a')
{*p=*p+15;}
else if(option=='b')
{*p=*p+5;}
else if(option=='c')
{*p=*p-5;}
}

3个回答

caozhy
caozhy   Ds   Rxr 2016.04.16 10:34
已采纳
 question1(&p);
->
question1(p);
caozhy
caozhy 回复anhaoxuan: 鬼知道范磊是什么人,明显不靠谱嘛。
一年多之前 回复
wan974896411
wan974896411 回复anhaoxuan: p已经是地址,你如果再&p(取p的地址),就是地址的地址,你接收时就应该是用二级指针了
一年多之前 回复
anhaoxuan
anhaoxuan 再次感谢您 我学C++用的是范磊给的教程 所以可能和您的理解有些出入 但是您给我的指导确实能解决我的问题 衷心感谢!!!
一年多之前 回复
caozhy
caozhy 或者你写question1(&point);
一年多之前 回复
caozhy
caozhy 回复anhaoxuan: p已经是地址了。
一年多之前 回复
anhaoxuan
anhaoxuan 首先感谢您再次回答我的问题 但是我不太理解您的意思 如果把&p改成p不就变成了按值传递了么 我希望按址传递以防止出错
一年多之前 回复
wan974896411
wan974896411   2016.04.16 10:42

question1(&p); 这里不应该用取地址,直接用question1(p);因为p已经是地址了

MeiZhiMaYiDuYou
MeiZhiMaYiDuYou   2016.04.16 13:12

改成question1(p)
p 存放的就是point 地址

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!