猿问
回到首页
个人中心
反馈问题
注册登录
下载APP
首页
课程
实战
体系课
手记
专栏
慕课教程
为什么这个程序在运行后显示的结果为0???
#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;
}
qq_ChrisDuke_0
浏览 1352
回答 2
2回答
TerryLau
因为你用的是值传递,只能改变子函数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;}
0
0
0
打开App,查看更多内容
随时随地看视频
慕课网APP
相关分类
C++
typedef入门问题
1 回答
继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续