数据结构——结构体的5种定义方式及对比

以下仅为定义结构体的方式,具体使用在后续的文章中介绍。

#include<iostream>
#include<stdio.h>
using namespace std;
 
struct STR1{//该结构体名字为STR1
	int data1;
	char data2;
}str1,str2;//声明结构体STR1并声明sr1,str2两个类型为STR1的结构体变量 

typedef struct STR2{//该结构体名字为STR2
	int data1;
	char data2;
}STR21; //别名是STR21 
//用typedef声明的结构体可以使用别名
//没有typedef声明的结构体不能声明别名  

struct STR3{//该结构体名字为STR3
	int data1;
	char data2;
};

struct STR4{
	int data; 
	struct STR4 *str41;//定义指向自己同一类型的指针域 
	STR4 *str42;//定义和自己同一类型的变量 
	//关键词struct可以省略 
}; 

typedef struct STR5{
	int data;
	struct STR5 *str51;//定义指向自己同一类型的指针域 
//	STR5 str52;
}STR5,*str5;//别名STR5、*str5。
//定义关于指针类型的结构体用法:
//STR5 *p51;
//str5 p52;

总结:
1、对于struct xxx{}的形式,这种声明方式声明的结构体无别名,结构体名称就是xxx;在{}后写的名称yy直接就是名称为yy的xxx类型的变量;
2、对于typedef struct xxx{}的形式,这种声明方式的结构体可以有别名,结构体名称为xxx,如果在{}后写有名称yy,那便是xxx结构体的别名yy,yy并不是变量;
3、如果在结构体的数据中有和自身一样类型的属性,则必须以struct xxx *yy的形式声明,即:要以指针的形式声明(struct可省略)。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

芣苢的成长之路

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值