sususususu 发表于 2022-12-11 20:32:51

结构体问题,萌新求教

以下程序段执行后的输出结果是___ 。

#include <stdio.h> typedef union utype{ int a; char ch; }UT; typedef struct stype{ int a; char ch; UT s; }ST;

void main(){ ST bt; bt.a = 66; bt.s.a = 5; bt.s.ch ='A'; printf("%c %d\n", bt.a, bt.s.a); }




请问输出结果是什么?


zhangjinxuan 发表于 2022-12-11 21:23:36

B 65
bt.a = 66, 而printf却用 %c 输出,66转换为字符为 B,因为 B 的 ascii 码 = 66

bt..s.a 因为被 bt.s.ch 覆盖, bt.s.ch 的值为 A,那么 bt.s.a 也是 A,只不过转换为整型为 65, 所以输出 65
页: [1]
查看完整版本: 结构体问题,萌新求教