首页 > 编程知识 正文

c语言union的作用,union的用法c语言

时间:2023-05-06 09:45:03 阅读:182801 作者:2949

C语言union类型需要注意的地方

举个例子,运行下列程序

#include<stdio.h> union myun{ struct{ int x,y; }s; int k; }u;int main(){ u.s.x=1;u.s.y=2; u.k=0; printf("%d,%d,%dn",u.s.x,u.s.y,u.k); return 0;}

运行结果:0,2,0

说明:我们开始定义了一个myunion,它包含一个名为s的结构体和一个整形变量k;根据C语言的规定,编译器为其开辟了这个结构体的大小的空间(2+2=4B).
之后在main中先是对结构体s的x变量赋值1,又对结构体s的y变量赋值2,最后对k变量赋值为0,然而对k赋值的同时s.x被替换为0,但s.y不变仍未2.
根本原因就是编译器开辟union类的空间时是按其占用存储空间最长的成员开辟。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。