西八浅看道语言题。谢大佬们指教!

当参数*x=1, *y=1, *z=1时,函数add的返回值可能是( )?

int add(int add(int *x, int *y, int *z)

{
    *x += *x;
    *y += *x;
    *z += *y;
    return *z;
 }

这道题考察关于指针指向的问题。

首先要清楚,我们一共定义了三个指针,也就是说他们指向的内容可能是不一样的也有可能是一样的

于是就有以下几种情况。

1、三个指针 指向同一个地址,此时的情况:

首先*x=1+1;        *y=2+2;        *z=4+4;此时*z为8。

2、三个指针 指向各自的地址:

首先*x=1+1;        *y=2+1;         *z=3+1;        此时*z为4。

3、x和y指向一个地址 而z指向另一个:

首先*x=1+1;        *y=2+2;         *z=4+1;        此时*z为5。

4、x和z 指向同一地址 而y指向另一个:

首先*x=1+1;        *y=2+1;         *z=3+2;        此时*z为5。

5、y和z 指向同一地址 而x指向另一个:

首先*x=1+1;        *y=2+1;         *z=3+3;        此时*z为6。

也就是以上五种情况。西八,当时就是懵在了*x=1;*y=1;*z=1上了。


谢谢各位大佬看这题,刚刚初入c语言。请大佬们多多指教!!!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值