php实现 结构体 枚举,C++_全面了解结构体、联合体和枚举类型,一. 结构体: 1. 定义结构体 - phpStudy...

全面了解结构体、联合体和枚举类型

一. 结构体:

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是一个整数的大小。

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

Win10怎么打开doc文件?Win10打开doc文件的方法

PHP SPL标准库之文件操作(SplFileInfo和SplFileObject)实例

解析C++中多层派生时的构造函数及一些特殊形式

C#提示:“在证书存储区中找不到清单签名证书”的解决方法

SQLite教程(十三):C语言编程实例代码(1)

php页面缓存方法小结

php实现在服务器端调整图片大小的方法

WinForm项目开发中NPOI用法实例解析

浅谈FileItem类的常用方法

jQuery实现新消息闪烁标题提示的方法

Android开发之BroadcastReceiver用法实例分析

可编辑下拉框的2种实现方式

jQuery EasyUI 入门必看

Asp.net,C# 加密解密字符串的使用详解

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值