C语言完美演绎9-10

/* 范例:9-10 */

#include <stdio.h>

union /* 无自定义union类型名称的声明 */

{

int c;

char d;

}cd; /* 声明 + 定义 */

union data /* 有union类型名称声明 */

{

int a;

float d;

char b;

}; /* 只声明 */

void main(void)

{

data var1; /* 定义 */

data var2={3.1415}; /* 初始化var2.a = 3(自动转换) */

printf("var2.a = %d\n",var2.a); /* 自动转换为3 */

printf("var2.d = %f\n",var2.d); /* 非3.1415 */

printf("Size of var1 = %d\n",sizeof(var1));

var1.a=3; /* 使用 */

printf("var1.a=%d\n",var1.a); /* a=3 */

var1.b='A';

printf("var1.a=%d\n",var1.a); /* a=65(a 被覆写了) */

getchar();

}

程序执行结果:

var2.a = 3

var2.d = 0.000000

Size of var1 = 4

var1.a=3

var1.a=65

相关推荐
Navigator_Z3 小时前
LeetCode //MySQL - 1251. Average Selling Price
c语言·算法·leetcode
Escalating_xu4 小时前
【C语言数据类型和变量·上】从内置类型到变量模型:一次讲透 sizeof、signed/unsigned 与作用域
c语言
aramae4 小时前
模拟实现strlen()函数 (C语言)
c语言·开发语言·后端
多弗朗皮卡丘7 小时前
数据结构9:排序算法
c语言·数据结构·排序算法
老当益壮梁奶奶11 小时前
ARM 汇编学习笔记(二)启动代码、指令、函数调用与 C 混合编程
c语言·arm开发·单片机·嵌入式硬件·51单片机
wuminyu12 小时前
Markword在紧凑对象头上的实现原理剖析
java·linux·c语言·jvm·c++
潘潘的嵌入式日记12 小时前
位操作怎么写才不出错?置位、清位、翻转、取位一次讲清
c语言·嵌入式·寄存器·位操作
无忧.芙桃13 小时前
数据结构之排序算法(上):从评价指标到插入、希尔、选择与堆排序
c语言·c++·排序算法
SuperByteMaster13 小时前
configUSE_TIME_SLICING和configUSE_PREEMPTION
c语言
周杰偷奶茶13 小时前
【C 语言】分支、循环和 goto 语句(附实战)
c语言