一道C++的函数选择题 要求详细解答

设变量a和b已在主函数中定义,对于函数intcount(intx,intw){……}以下描述不正确的是()A。调用函数时,可以使用语句a=count(2*a+b,0)B.... 设变量a和b 已在主函数中定义,对于函数 int count(int x,int w){……}以下描述不正确的是( )
A。调用函数时,可以使用语句a=count(2*a+b , 0)
B.调用语句count(a,b)调用函数时,实参b和虚参w共用一个内存单元
C.调用语句count(a,b)调用函数时,系统为虚参x和w各分配一个整型单元。
D。如果a和b 是double型,函数count(a,b)仍能执行,但a和b的下属将被忽略,只将其整数部分传给w和x
展开
 我来答
thinkluoqi
2011-01-09 · TA获得超过113个赞
知道小有建树答主
回答量:109
采纳率:0%
帮助的人:192万
展开全部
首先 答案是B

为什么?
因为,c++的规定就是,当函数的参数是值类型的时候,传递的是值,而不是地址,所以会为这个传来的值 新分配一个地址单元。

在这里的实际参数a本来已经有一个地址单元了,然后根据上面这个c++的规定,所以会为a的值另外分配一个地址单元,变量名是w。

不过 这个“&”符号你要去学习一下,这个是传递引用,也就是传递的同一个内存单元。

例子1 (值传递)
int count(int number) //函数定义 没实际意义演示而已
{ return number;}
int a = 1;//这个时候 内存里面有一个地址a 值为1

调用count(a); //这个时候内存里面有一个地址a 和 number

例子2 (引用传递)
int count(int &number) //函数定义 没实际意义演示而已
{ return number;}
int a = 1;//这个时候 内存里面有一个地址a 值为1

调用count(a); //这个时候内存number的地址就是a的地址,所以用引用才是共用一个内存单元
Quasimodo2001
2011-01-09 · TA获得超过254个赞
知道小有建树答主
回答量:211
采纳率:0%
帮助的人:203万
展开全部
错误的是B
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友b31f48690
2011-01-09 · TA获得超过424个赞
知道小有建树答主
回答量:525
采纳率:0%
帮助的人:403万
展开全部
B不正确
其实有点儿问题,得有a、b的类型才好说,假设a、b都是int型吧,a、b如果都为类类型肯定都错吧,接着说
A:a为变量,可作左值,函数返回值int,可做右值,参数可为表达式,正确
B:值传递,形参、实参肯定不是同一内存,count函数执行时,根据传入的参数临时开辟两个int
C:同B,则C对
D:数据类型的隐式转换,double转int,截掉小数部分
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
徐光猪
2011-01-09 · TA获得超过4167个赞
知道大有可为答主
回答量:1299
采纳率:50%
帮助的人:1736万
展开全部
B 是错误的

因为 实参 与 虚参 不可能用用一个 存储党员 因为这是一个值复制的过程

如果是地址传递 就是 共用一个内存单元

应该是这样定义 count函数
int count(int *x,int *w){……}
传入一个地址

调用时 count(&a,&b) 这就共用一个存储单元了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式