永发信息网

mai() {int *a,*b,*c; a=b=c=(int*)malloc(sizeof(int)); *a=1;*

答案:2  悬赏:0  手机版
解决时间 2021-12-23 16:25
  • 提问者网友:杀手的诗
  • 2021-12-23 11:48
mai() {int *a,*b,*c; a=b=c=(int*)malloc(sizeof(int)); *a=1;*b=2;*c=3;a=b;printf(%d,%d,%d,*a,*b,*c
运行后的结果是3,3,3 这是怎么得出的结果?
最佳答案
  • 五星知识达人网友:十年萤火照君眠
  • 2021-12-23 11:55

int *a,*b,*c;这个是定义三个指向int的指针.
a=b=c=(int*)malloc(sizeof(int)); 分配一个保存int的空间.相当于这个时候a,b,c是指向内存中同一个空间的.
*a=1;*b=2;*c=3;a=b;
执行*a = 1时,*b,*c也都是1
同样的执行*b = 2时,*a,*c也都是2
最后*c=3;,*a,*b也都是3
因为它们三个指向的是同一个空间.所以取值是相同的.
仍有问题可以HI我.


全部回答
  • 1楼网友:底特律间谍
  • 2021-12-23 13:17
这个问题我还想问问老师呢
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯