C语言共用体union
union共用体说明:
当一个共用体被声明时, 编译程序自动地产生一个变量, 其长度为联合中最大的变量长度的整数倍。
比如union中有{int x; double x1; char name[10];}这个共用体的长度为10字节,因为name[10]是这个共用体中最大的一个变量
#include <stdio.h> struct A
{
int num;
char name[20];
char job;
union //共用体关键字union
{
int x;
char zy[20];
}t1; //共用体对象
}; int main()
{
struct A a[2];
int i=0;
while (i < 2)
{
printf("请输入编号:");
scanf_s("%d", &a[i].num);
printf("请输入姓名:");
scanf_s("%s", a[i].name, 20);
printf("请输入职位,学生为s,老师为t :");
getchar();
scanf_s("%c", &a[i].job, 1);
if (a[i].job == 's')
{
printf("请输入该学生的班级:");
scanf_s("%d", &a[i].t1.x);
}
else
{
printf("请输入该老师的职位:");
scanf_s("%s", a[i].t1.zy, 20);
}
i++;
} printf("************************************\n");
i = 0;
while (i < 2)
{
if (a[i].job == 's')
{
printf("%d\t%s\t%c\t%d\n", a[i].num, a[i].name, a[i].job, a[i].t1.x);
}
else
{
printf("%d\t%s\t%c\t%s\n", a[i].num, a[i].name, a[i].job, a[i].t1.zy);
}
i++;
} system("pause");
return 0;
}
C语言共用体union的更多相关文章
- (C语言)共用体union的使用方法举例
曾经在学校学习C语言的时候一直搞不懂那个共用体union有什么用的.工作之后才发现它的一些妙用,现举比例如以下: 1. 为了方便看懂代码. 比方说想写一个3 * 3的矩阵,能够这样写: [ 注:以下用 ...
- C语言共用体、大小端、枚举
1.共用体和结构体的相同和不同 (1)相同点就是操作语法几乎相同.(2)不同点是本质上的不同.struct是多个独立元素(内存空间)打包在一起:union是一个元素(内存空间)的多种不同解析方式. # ...
- C语言 共用体
//共用体 union #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> #includ ...
- C语言共用体(Union)
通过前面的讲解,我们知道结构体(Struct)是一种构造类型或复杂类型,它可以包含多个类型不同的成员.在C语言中,还有另外一种和结构体非常类似的语法,叫做共用体(Union),它的定义格式为: uni ...
- 共用体union
union共用体名 { 类型名 成员名1: 类型名 成员名2: …… 类型名 成员名n; } 由于各个成员变量在内存中都使用同一段存储空间,因此共用体变量的长度等于最长的成员长度,共用体的访问方式和结 ...
- 共用体 union
共用体是一种数据格式,能够存储不同的数据类型,但只能同时存储其中的一种类型. union one4all { int int_val; double double_val; long long_val ...
- C结构体struct 和 共用体union的使用测试
#include <stdio.h> struct { char name[10]; char sex; char job; int num; union{ //联合只能共用同一个内存 i ...
- 以位为单位存储标志-共用体-union
一.程序的结构如下: typedef union _KEYST { struct { uint8 Key1_Flag :1;//表示第0 ...
- 5、数组&字符串&结构体&共用体&枚举
程序中内存从哪里来 三种内存来源:栈(stack).堆(heap).数据区(.date): 栈(stack) 运行自动分配.自动回收,不需要程序员手工干预: 栈内存可以反复使用: 栈反复使用后,程序不 ...
随机推荐
- .net 下的 HttpRuntime.Cache 应用
using System;using System.Collections.Generic;using System.Diagnostics;using System.Linq;using Syste ...
- ng-options 如何实现其中一项option禁选
<select class="form-control" ng-model="functionPaymentMethod" ng-options=&quo ...
- poi读取excel转对象,格式转换帮助类
//格式转换//value:原数据,parmtype:方法参数类型,cellType 单元格类型public static Object formatd(String value, String pa ...
- Angular2 直接给元素指定超链接打开会带有 `unsafe` 字样导致数据不能加载
解决方法: 在 component 中引入 import { DomSanitizer } from "@angular/platform-browser";然后在构造函数中注入 ...
- [Vue]实例化Vue时的两种挂载方式el与$mount
Vue 的$mount()为手动挂载,在项目中可用于延时挂载(例如在挂载之前要进行一些其他操作.判断等),之后要手动挂载上.new Vue时,el和$mount并没有本质上的不同. 1.el Vue实 ...
- 分布式缓存集群方案特性使用场景(Memcache/Redis(Twemproxy/Codis/Redis-cluster))优缺点对比及选型
分布式缓存集群方案特性使用场景(Memcache/Redis(Twemproxy/Codis/Redis-cluster))优缺点对比及选型 分布式缓存特性: 1) 高性能:当传统数据库面临大规模 ...
- SPOJ KPSUM ★(数位DP)
题意 将1~N(1<=N<=10^15)写在纸上,然后在相邻的数字间交替插入+和-,求最后的结果.例如当N为12时,答案为:+1-2+3-4+5-6+7-8+9-1+0-1+1-1+2=5 ...
- iptables详解(10):iptables自定义链
前文中,我们一直在定义规则,准确的说,我们一直在iptables的默认链中定义规则,那么此处,我们就来了解一下自定义链. 你可能会问,iptables的默认链就已经能够满足我们了,为什么还需要自定义链 ...
- mac下csv乱码解决办法
到csv目录下, 用终端执行以下命令: iconv -f UTF8 -t GB18030 a.csv >b.csv
- NEU 1497 Kid and Ants 思路 难度:0
问题 I: Kid and Ants 时间限制: 1 Sec 内存限制: 128 MB提交: 42 解决: 33[提交][状态][讨论版] 题目描述 Kid likes interest ques ...