永发信息网

c++运行问题

答案:1  悬赏:60  手机版
解决时间 2021-05-14 22:17
  • 提问者网友:别再叽里呱啦
  • 2021-05-14 08:35

#include "stdafx.h"
#include <stdio.h>

union bt
{
int a;
int b[2];

};


void fun (union bt *c)
{
c->a=-7;
c->b[0]=9;
c->b[1]=8;
}

void main(int argc, char* argv[])
{
union bt c;
fun(&c);

printf("%d\n",c.a);

}
这个是怎么执行的啊?怎么结果是9呢?

最佳答案
  • 五星知识达人网友:患得患失的劫
  • 2021-05-14 09:41

联合union就是将同一个内存单元分配给多个变量的做法。


a的位置,就是b的位置,所以


c->a=-7;---------不起作用
c->b[0]=9;-------这句才是真正有用的。
c->b[1]=8;


最终结果等于9

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯