结构体,共用体和枚举类型的区别

结构体是一种构造类型,它的每一个成员都可以是一个基本的数据类型或者又是一个构造类型(结构体的嵌套使用),它的所有成员都能共存,这也是它和共用体和枚举类型的最大区别。它的简单定义如下。

 struct{
    char  i  ;
    int   j  ;
    struct add ;
 }

每一个定义的变量,它们的是可以改变的,但它们的数据类型是不能改变的,共用体就是一种可以在同一存储区域变成不同数据类型的一种数据类型。它采用的是覆盖存储技术,准许不同的数据类型相互覆盖。它的简单定义如下。

union{
    char  i  ;
    int   j  ;
    struct add ;
}

枚举类型仅仅适用取值于有限的数据,它里面的标识符是常量不是变量,不能改变他的值,枚举元素只能是标识符,不能是基本类型常量,它的简单定义如下。

 enum{
    sun;
    mon;
    ...;
 }
时间: 2024-12-27 20:34:44

结构体,共用体和枚举类型的区别的相关文章

瘋子C语言笔记(结构体/共用体/枚举篇)

 (一)结构体类型 1.简介: 例: struct date { int month; int day; int year; }; struct student { int num; char name[20]; char sex; int age; struct date birthday; /*birthday 是 struct date 类型*/ char addr[30]; }student1,student2; (1):结构体可嵌套 (2):与枚举相比结构体内元素为变量,而枚举为常

8.1 结构体 共用体 typedef 枚举

typedef :  给类型起一个新的名字 int main() { unsigned int a = 10; } 可以用下面表示: typedef unsigned int u32_t; int main() { u32_t a = 10; } 与definde的区别: typedef char *  N; #define N char* N p1,p2,p3; define的话  p2 p3 变成了char 类型 结构体 :不同类型元素的汇聚 ①匿名结构体 struct{ int id;  

数组、结构体、联合体、枚举类型、类型转换

1.数组 int num[2] = { 1, 2 };//1×2,num[0]=1 int num[2][2] = { { 00, 01 }, { 10, 11 } };//2×2,num[1][1]=11 int num[2][2][2] = { {{000,001},{010,011}}, {{100,101},{110,111}} };//2个2×2数组,num[1][1][1]=111 2.结构体 #include <stdio.h> int main() { struct Famil

不可或缺 Windows Native (8) - C 语言: 结构体,共用体,枚举,类型定义符

[源码下载] 作者:webabcd 介绍不可或缺 Windows Native 之 C 语言 结构体 共用体 枚举 类型定义符 示例cStruct.h #ifndef _MYHEAD_STRUCT_ #define _MYHEAD_STRUCT_ #ifdef __cplusplus extern "C" #endif char *demo_cStruct(); #endif cStruct.c /* * 结构体,共用体,枚举,类型定义符 * * 注:结构体变量在做参数传递时,其内每个

共用体与枚举

共用体 共同体和结构体类似,也是一种构造类型的数据结构,既然是构造类型的,咱们先定义除类型,然后用类型定义变量 定义共用体类型得方法和结构体非常相似,把struct 改成union就可以 在进行某些算法得时候,需要使几种不同类型的变量存到同一段内存单元中,几个变量间相互重叠 这种几个不同的变量共同占用一段内存的结构,在C语言中,被称作"共用体"类型结构,共用体所有成员占有同一段地址空间 共用体的大小是其占内存长度最大的成员的大小 举例 typedef struct data{ shor

C语言 共用体

//共用体 union #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> #include<string.h> // union 共用体,构造数据类型,也叫联合体,用途:十几个不同类型的变量共占一段内存(相互覆盖) //共用体在类型定义的时候并不分配内存,定义共用体变量的时候才分配内存 union data{ char c; int a[10]; }udat1; union stu{

C 共用体

C 共用体 共用体是一种特殊的数据类型,允许您在相同的内存位置存储不同的数据类型.您可以定义一个带有多成员的共用体,但是任何时候只能有一个成员带有值.共用体提供了一种使用相同的内存位置的有效方式. 定义共用体 为了定义共用体,您必须使用 union 语句,方式与定义结构类似.union 语句定义了一个新的数据类型,带有多个成员.union 语句的格式如下: union [union tag] { member definition; member definition; ... member d

结构体、共用体、枚举____笔记

-------------------讲在前面 老规矩,本人小菜. 互联网是发达的,神奇的.其中,有开源与不开源一说,我不知道我懂多少. 我在网上取我所需,但是有时候会标注来源,有时候没标注.如果某大神觉得被冒犯了,请联系删除. 我会有复制粘贴,但我并不认为拿过来就是我的东西,只是纯粹的欣赏,学习. 开博客,主要是觉得对自己学习有益.我会记录自己觉得有意义的东东. 如果有人见到本文章,是我的荣幸,希望对你有所帮助. 当然,我不保证绝对正确,若你发现不对的地方,可以评论或者联系,指正批评,大家相互

入职培训笔记记录--day9(1、指针函数与函数指针、函数指针数组 2、malloc memset 3、递归函数 4、结构体 5、共用体---》大小端 6、枚举)

1.指针函数与函数指针.函数指针数组 指针函数:返回值为指针的函数 char *fun() { char str[] = "hello world"; return str; } int main() { char *p = fun(); puts(p); return 0; } 编译时,会出现警告,返回了一个已经被释放掉的内存空间的首地址解决方法:1.static 2.char *str = "hello world"; 3.malloc 注意:使用完后要free