结构体问题,萌新求教
以下程序段执行后的输出结果是___ 。#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); }
请问输出结果是什么?
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]