一个c++的简单问题,求大佬解答
这个用户自定义函数a它没有return语句,为什么输出结果m=5,它为什么不等于10,求解答,谢谢大佬们...
这个用户自定义函数a它没有return语句,为什么输出结果m=5,它为什么不等于10,求解答,谢谢大佬们
展开
2个回答
展开全部
自定义函数如下结构:
#include<iostream>
using namespace std;
int m=10;
void a(int n)
{
n=15/n;
m=m/2;
}
int main()
{
int n=3;
a(n);
cout<<"m="<<m<<","<<"n="<<n;
}
1)n是值传参,n=15/n;这一语句没有作用的,它只能使得在a函数内的n改变值,但此n与main函数内的n地址不同。
可以测试一下就知道了:
#include<iostream>
using namespace std;
int m=10;
void a(int n)
{
n=15/n;
m=m/2;
cout<<"a函数中n的地址"<<&n<<endl;
}
int main()
{
int n=3;
a(n);
cout<<"m="<<m<<","<<"n="<<n<<endl;
cout<<"main函数中n的地址"<<&n<<endl;
}
2)m没有再函数a内定义,如果不报错,那它应该在一个更大的代码块内被定义了;根据图片内容,m实在源文件的main函数之外定义的,属于该源文件的全局变量,所以第二句m=m/2;会令m这个内存中的值发生变化
#include<iostream>
using namespace std;
int m=10;
void a(int n)
{
n=15/n;
m=m/2;
}
int main()
{
int n=3;
a(n);
cout<<"m="<<m<<","<<"n="<<n;
}
1)n是值传参,n=15/n;这一语句没有作用的,它只能使得在a函数内的n改变值,但此n与main函数内的n地址不同。
可以测试一下就知道了:
#include<iostream>
using namespace std;
int m=10;
void a(int n)
{
n=15/n;
m=m/2;
cout<<"a函数中n的地址"<<&n<<endl;
}
int main()
{
int n=3;
a(n);
cout<<"m="<<m<<","<<"n="<<n<<endl;
cout<<"main函数中n的地址"<<&n<<endl;
}
2)m没有再函数a内定义,如果不报错,那它应该在一个更大的代码块内被定义了;根据图片内容,m实在源文件的main函数之外定义的,属于该源文件的全局变量,所以第二句m=m/2;会令m这个内存中的值发生变化
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询