一. 结构体:

1. 定义结构体类型:

struct 结构体

{

任意类型 任意变量;

任意类型 任意变量;

……

};

注意:这不是定义变量,而是自定义一种类型而已。

struct student

{

char name[10];//学生姓名

int height;//学生身高

bool sex;//学生性别 假设0表示女,1表示男。

};//此处分号不能少。

2. 定义结构体变量。

类型定义好以后,则可以定义该类型的变量。

定义结构体变量:

struct student a,b;// struct可以省略。

可以在定义结构体变量的时候赋值。

如student a={”liudehua”,172,1},b={“lixiaolong”,172,1};

也可以在定义结构体变量以后赋值,但注意不能再用{}。

如:

student a,b;

a={”liudehua”,172,1},b={“lixiaolong”,172,1};//这是错误的。

而应该是:

strcpy(a.name,”liudehua”);

a.height=172;

a.sex=1;

3.可以在定义结构体类型的时候同时定义结构体变量并赋值。

struct student

{

char name[10];//学生姓名

int height;//学生身高

bool sex;//学生性别 假设0表示女,1表示男。

} a={”liudehua”,172,1},b={“lixiaolong”,172,1};

4.访问结构体:

访问结构体成员要用直接成员运算符“.”或间接成员运算符“->”。

student a={”liudehua”,172,1};

cout<

student *p=&a;

cout<name<height<sex;

对于结构体变量,访问其中的成员采取“结构体变量.成员”的形式;而对于结构体指针,访问它所指向的结构体变量中的成员,则采取“结构体指针->成员”形式。

二.联合体

联合体也是一种自定义的复合类型,它可以包含多个不同类型的变量。这些变量在内存当中共用一段空间。这段空间的size就是各变量中size最大的那个变量。

1定义联合体类型:

union myunion

{int num1;

Double num2;

Float num3;

};

定义了一个联合体类型myunion。

myunion a,b;//定义了两个myunion型变量。

也可以在定义联合体类型的时候定义联合体变量。

如:

union myunion

{int num1;

Double num2;

Float num3;

}a,b;

a占用的空间有多大呢?

Sizeof(a)结果即为8,即myunion占用8个字节,和double型变量相同。

注意:任一时刻,只能访问结构体里面的一个变量。

a.num1=2;

a.num2=3.154;

myunion *p;

p=&a;

p->num3=5.6;

三.枚举类型

1.枚举类型的定义:枚举类型也是一种自定义的复合类型。不过,枚举类型中的成员都是常量。

enum color

red,

green,

blue,

white,

black

};

枚举类型中的成员默认值为从0开始,依次序递增。此时red==1,green为2,blue为3,white为4,black为5.

也可以改变起默认值。

enum color

red=1,

green=3,

blue=5,

white,

black

};

没有初始化的枚举类型成员的值将在它前面的成员基础上递增。

所以,white的值为6,而black的值为7.

2.定义枚举变量:

color a1,a2;

3.给枚举变量赋值:   a1=red;

a2=blue;

cout<

虽然枚举常量的值整数,但是不能直接将整数值赋给枚举变量。

a1=1;//这是不对的。因为类型不匹配。一个是整型,一个是枚举类型。

a1=(color)1;//正确

枚举变量的size是一个整数的大小。

以上这篇全面了解结构体、联合体和枚举类型就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

c语言枚举和结构体的区别,全面了解结构体、联合体和枚举类型相关推荐

  1. Android JNI编程(六)——C语言函数指针、Unition联合体、枚举、Typedef别名、结构体、结构体指针...

    版权声明:本文出自阿钟的博客,转载请注明出处:http://blog.csdn.net/a_zhon/. 目录(?)[+] 一:函数指针 1.函数指针顾名思义就是定义一个指针变量指向一个函数,和一级指 ...

  2. c语言结构共用体的作用,浅谈C语言共用体和与结构体的区别

    共用体与结构体的区别 共用体: 使用union 关键字 共用体内存长度是内部最长的数据类型的长度. 共用体的地址和内部各成员变量的地址都是同一个地址 结构体大小: 结构体内部的成员,大小等于最后一个成 ...

  3. C语言——自定义类型详解(结构体,联合体,枚举,位段)

    专栏:C语言 个人主页:HaiFan. 专栏简介:本专栏主要更新一些C语言的基础知识,也会实现一些小游戏和通讯录,学时管理系统之类的,有兴趣的朋友可以关注一下. 结构体 前言 一.结构体 1.结构体类 ...

  4. 结构体、联合体以及枚举

    结构体.联合体以及枚举类型是我们在学习C/C++中经常遇到的一些数据结构,接下来我们就来认识和区别一下他们. 结构体:(struct) 用途: 把不同的数据组合成一个整体--自定义数据类型 C语言:在 ...

  5. C++中类和结构体的区别

    结构体和类的唯一区别就是: 结构体和类具有不同的默认访问控制属性 即:类中,对于未指定访问控制属性的成员,其访问控制属性为私有类型(private) 结构体中,对于未指定任何访问控制属性的成员,其访问 ...

  6. C和C++结构体的区别

    C和C++结构体的区别 转自:https://www.cnblogs.com/qiumingcheng/p/7814970.html 1.C的结构体内不允许有函数存在,C++允许有内部成员函数,且允许 ...

  7. 初识C语言系列-5-完结篇-#define,指针,结构体

    目录 1.前言 2.#define定义常量和宏 #define定义常量 #define定义的宏 3.指针 内存 指针变量的大小  4.结构体 1.前言 终于到了初识C语言的完结篇了,这里再次祝大家五一 ...

  8. 结构体,联合体,枚举详解

    结构体,联合体,枚举详解 目录 结构体 联合体 枚举常量 1.结构体 在C语言中,系统已经提供了一些数据类型,比如float,int,double,char等,但是我们有时会需要更复杂的类型来描述一个 ...

  9. C++:C++语言入门级基础知识考察点回顾之函数、结构体和类

    C++:C++语言入门级基础知识考察点回顾之函数.结构体和类 目录 C++的函数 1.函数的定义.调用,全局变量局部变量 1.1.自定义函数求其倒数

最新文章

  1. 不要依赖代码中的异常
  2. 计算机CAI应用实例,运用CAI课件辅助实验的实例分析
  3. Django 基础教程
  4. 必看:Kubernetes 开发环境对比
  5. OpenFOAM中:点,线,面,体的概念区别(尤其是face和patch的区别)
  6. 12个Visual Studio调试效率技巧
  7. C++描述杭电OJ 2016. 数据的交换输出 ||
  8. linux chromebook arm,第一款可拆卸 ARM Chromebook 可能是 KODAMA
  9. mysql setnull_1、Mysql无法创建外键的原因 2、MySql 外键约束 之CASCADE、SET NULL、RESTRICT、NO ACTION分析和作用...
  10. 小强的HTML5移动开发之路(27)—— JavaScript回顾2
  11. 曼昆《经济学原理宏观》读书笔记
  12. Discuz!客户端api开发(一)
  13. Unity3D视频教程,Unity3D从入门到精通视频教程
  14. clion生成qt的qrc文件
  15. php存省市,PHP格式化全国省市区列表
  16. 作为一个iOS攻城狮不得不了解的网络知识
  17. 作业(数组)---运行环境winTC(一)
  18. 加密币Terra创始人权道亨已从新加坡飞往杜拜转往第三国
  19. python机器学习——十次交叉验证训练的数据准备算法
  20. 使用 vue 开发 APICloud 应用的教程

热门文章

  1. 将ubuntu的apache2修改成https链接
  2. ios 调用系统应用的方法 应用间跳转的方法
  3. [转]把复杂事物简明化
  4. 解决过帐时提示“无法获取内部公司交易记录的帐户”
  5. 传西门子中国运营中近一半业务涉及行贿
  6. 20181009-6 选题 Scrum立会报告+燃尽图 05
  7. Linux 搭建PHP环境
  8. win10 + VS2015 + EF6 + MySQL
  9. 转:Google的系统工程师(SA)如何工作
  10. Servlet如何上传文件? 戳这里