以下仅为定义结构体的方式,具体使用在后续的文章中介绍。
#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可省略)。