c++用户自定义数据类型(结构体)(枚举)

用户可以自己声明自定义类型:

结构体类型(structure),共用体类型(union),枚举类型(enumeration),类(class)类型

结构体类型:

定义:

在一个组合项中包含若干数据类型不同或相同地数据项;c++和c允许用户自定义地一种数据类型,叫做结构体

一般形式:

struct 结构体类型名

{

成员表};

声明结构体时要对内部变量进行声明,

类型名 成员名

定义结构体变量三种方法:

1.先定义在声明变量,定义完成结构体在用的时候再去定义

struct student{

int age;

string str;};

int main(){

student student1;

return0;}

2.直接声明完成后定义变量

struct student{

int age;

string str;}student1,student3;

一般形式

struct 结构体名称{

成员表}变量名表;

结构体变量初始化:

1.声明后在定义是进行初始化

struct student{

int age;

string str;};

int main(){

student student1={10,”黎明“};

return0;}

2.直接声明完成后定义变量并初始化

struct student{

int age;

string str;}student1={10,”黎明“};

引用结构体变量

1.结构体变量可以赋值给相同结构的结构体变量


student1=student2;

2.引用结构体变量的成员

一般形式

结构体变量名  .    成员名

cout<<student1.age;

 

结构体数组:

就是每一个数组元素对应一个结构体变量,定义方法和变量相同,都可以在声明结构体时或则使用时定义,

初始化:

和变量初始化相同

struct student{

int age;

string str;};

int main(){

student student1[2]={10,”黎明“,20."讲解"};

结构体指针

 

1.通过指针访问元素

成员访问三种形式student*p=&student1;

1.结构体变量名    .  成员名

2.(*p) .   成员名

3.p->成员名

***注意****

p->n++;得到n的值,先使用,再让该值加一

++p->n:得到n的值。让该值加一。在使用

结构体链表的运用(数据结构详细描述)

new和delete动态分配空间

一般格式:

 

new 数据类型[初值];

delete []指针变量    (对数组)

delete 指针变量    (变量)

 

说明

new分配完会返回一个空间地址,一般那我们定义指针承接地址,如果指针为空则分配不成功,delete释放空间,只需要对指针操作即可;注意判断是否分配成功

例子:

int *p=new int;

delete p;

 

int*p=new int (100);开辟空间并存入值100

delete p;

 

int *p=new int[4];开辟一个存放四个元素大小的数组

delete p;

 

枚举类型

定义

如果一个变量只有可能是几个值,可定义为枚举类型,就是说变量的范围只能是范围之内的

枚举元素(枚举常量不可赋值操作)

一般形式:

enum 枚举类型名 {枚举常量表};

enum  weekday {sun,mon};

定义变量

1.使用时定义

  weekday  workday;

2.声明时定义:

enum  weekday {sun,mon} workday;

注意:

1.枚举常量不可赋值

sun=0;错误

2.枚举元素定义时会按照顺序系统赋值(从0开始依次往后递增)

  weekday  workday;

workday=sun;

cout<<workday;

输出结果为0

3.枚举元素可以在定义声明时自己赋予初始值,那么后面没有赋初值的会按照就近依次加以

enum  weekday {sun=6,mon} 

mon=7

4.枚举值可以比大小按照整数值

5.不可以将整数直接赋值给枚举变量

workday=sun;正确

workday=0;错误

可修改为

workday=weekday(0);c++语言风格强转换

workday=(weekday) 0;c语言风格强转换

typedef声明新的类型名(类型名起别名)

一般形式为:typedef 原类型 别名

例如

typedef int  PP;

PP a =6; //与int a =6;是一样的 

*** 简单理解****

1.就是按照原来定义任何变量的方法先写出来

 

2.将变量名换位你要起的别名

 

3.最前面加上typedef

 

3.用别名去定义变量

实操如下:

 int num[10]

 int num1[10]

typedef  int num1[10];

num1  nu;nu是一个大小为10的int类型的数组

 

  • 29
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值