中易网

f(int i)与g(int &i)的区别是什么

答案:3  悬赏:70  
解决时间 2021-02-13 02:59
f(int i)与g(int &i)的区别是什么
最佳答案
f(int i)和g(int &i)的区别在于是否改变i的值。
对于f函数来说,i是一份参数拷贝,
对于g函数来说,i则是a的别名。

所以,g函数会修改传入的值。而f函数则不会。

a+=f(g(a));中,先计算g(a)=g(0) = 1,且a此时=1;
再计算f(g(a))=f(1) = 2;
最后计算a+=f(g(a)); 即a+=2;即a=a+2=1+2=3;
全部回答
g(int&i)是引用传递,也就是当变量自己传进去,这样操作的就是变量本身,所以g(a)返回的是1,这个时候会有一个副作用,那就是a 也变成了1 。而f(int&i)只是返回i+1,并不会修改实参。 所以a += f(g(a)) 也就是 a = f(g(a)) + a ,会先执行函数,g(a)返回的是1,同时a 也是1 ,f(1)返回的是2 ,所以 a = 2 + 1 ,也就是 3 。因为f(x)不会修改 实参,所以 b = f(f(b)) + b ,就是b = 2 + 0 ,
int (*f)(int,int)——f是个指针,指向一个具有两个int形式参数、返回int值的函数。 int (*f[3])(int)——f是个数组,数组的每个元素都是指针,这些指针是指向具有一个int形式参数、返回int值的函数的。 int f(int x,int y)——f是个函数,它有两个int型形式参数,返回int值。 int *f(int,int)——f是个函数,它有两个int型形式参数,返回指向int值的指针。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
我腋毛真的很多,而且又黑又粗,除了激光怎么
以纯这个牌子属于什么档次
iu酒店成都世纪城会展中心地铁站店这个地址在
ps cs6 中滤镜中扭曲怎么用
我男朋友给我唱空白格是什么意思
王家坝我想知道这个在什么地方
15年4月5号双色球什么时候开奖记录
财子香辣馆地址在哪,我要去那里办事
岩石 蒙语歌词 要用汉字写出蒙古语读音的那种
为什么我的电脑通过无线路由器连接一段时间后
飞天国宾酒 53度 酱香型 多少钱
陕西咸糖名酒有限公司在哪里啊,我有事要去这
指南针书吧怎么去啊,有知道地址的么
iphone手机壳太紧好吗
称骨三两九钱男命细解
推荐资讯
请问武汉缘来文化公司的兼职翻译怎么样啊?还
奔驰r350更挽电瓶注意什么
吃个肯德基圣代会胖吗。。。
谁能把我忘记QQ密码的号,摧毁掉,
汕头大学有mpacc吗
我有一辆---《捷达春天》,天逐渐凉了,车的
度数高的人适合戴什么镜框 知乎
压路机的滚筒是一个圆柱体,它的底面直径是1
煜麒麟川菜馆地址在什么地方,想过去办事
安盛家具北门地址有知道的么?有点事想过去
华为手机如何打开菜单键
我的苹果6之前换过一次屏幕现在用了差不多1个
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?