谁帮我剖析一道c++程序,写出每一步的过程及最后结果!!
#include<iostream.h>intx=3;voidf(int);voidmain(){f(x);cout<<"x="<<x<<endl;}voidf(intx...
#include<iostream.h>
int x=3;
void f(int);
void main()
{
f(x);
cout<<"x="<<x<<endl;
}
void f(int x)
{
x=5;
}
我运行的结果是“x=3”不知道是对的吗,尤其最后的void f(int x)
{
x=5;
}
是什么意思??亟待解决!! 展开
int x=3;
void f(int);
void main()
{
f(x);
cout<<"x="<<x<<endl;
}
void f(int x)
{
x=5;
}
我运行的结果是“x=3”不知道是对的吗,尤其最后的void f(int x)
{
x=5;
}
是什么意思??亟待解决!! 展开
6个回答
展开全部
对的,因为全局变量x 初始化为3,虽然调用了f()函数,但只是形参改变了
就是先把3传递给形参x,然后形参执行x=5;但这个仅仅是形参改变了
对原来外面的那个x不影响(实参),注意此x非彼x
如果用引用的话
void f(int &x)
{
x=5;
}
那么输出的就是5了
就是先把3传递给形参x,然后形参执行x=5;但这个仅仅是形参改变了
对原来外面的那个x不影响(实参),注意此x非彼x
如果用引用的话
void f(int &x)
{
x=5;
}
那么输出的就是5了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
首先告诉你,结果就是x=3;f这个函数如果没错那就是毫无意义
f函数只是改变属于这个函数的变量x,并不能改变调用这个函数的对象变量
如果你想要得到的结果是x=5,那就把f()函数改成
int f(int x)
{
x=5;
return x;
}
f函数只是改变属于这个函数的变量x,并不能改变调用这个函数的对象变量
如果你想要得到的结果是x=5,那就把f()函数改成
int f(int x)
{
x=5;
return x;
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
嗯,楼上们说的对!
void f(int x)
{
x=5;
}
这个形参x 生命期只在这对{}里,调用完该函数后,就结束了。形如你可以把他定义为int x1。
void f(int x)
{
x=5;
}
这个形参x 生命期只在这对{}里,调用完该函数后,就结束了。形如你可以把他定义为int x1。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这一个形参和值参的问题,你调用函数的时候只是调用了形参,或者说只是调用了一个值,并没有真正地对变量进行更改!!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
void f(int x) 这里用的是值传递,不是引用传递!所以结果是3。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询