为了账号安全,请及时绑定邮箱和手机立即绑定

为什么这个程序在运行后显示的结果为0???

为什么这个程序在运行后显示的结果为0???

C++
qq_ChrisDuke_0 2015-10-31 14:54:40
#include<iostream>using namespace std;void fun(int p,int b=2,int c=3);void fun(int p,int b,int c){p=b*c;}int main(void){ int F; int m=6; int a=2; fun(F,m,a); cout<<F<<","<<"The force is"<<endl; return 0;}
查看完整描述

2 回答

?
TerryLau

TA贡献5条经验 获得超1个赞

因为你用的是值传递,只能改变子函数fun中的p值,而不能改变实参F的值。你可以在fun中输出p检验一下。想要改变实参的值,必须使用引用或者地址传递(指针)。以下是我修改后的代码:----我用的是引用----

#include<iostream>

#include<stdlib.h>

using namespace std;

//void fun(int &p,int &b,int &c);  子函数放在main上面,就可以不用原型声明

void fun(int &p,int &b,int &c)    //引用

{

p=b* c;

// cout<<p<<endl;

}

int main(void)

{

int F=0;

int m=6;

int a=2;

fun(F,m,a);

cout<<F<<endl;

system("pause");    //  程序暂停

return 0;

}


查看完整回答
反对 回复 2015-10-31
  • 2 回答
  • 0 关注
  • 1330 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信