Ake丶

 

结构体定义

定义结构体数据类型及变量的几种方式

//此声明声明了拥有3个成员的结构体,分别为整型的a,字符型的b和双精度的c
//同时又声明了结构体变量s1
//这个结构体并没有标明其标签
struct 
{
    int a;
    char b;
    double c;
} s1;
 
//此声明声明了拥有3个成员的结构体,分别为整型的a,字符型的b和双精度的c
//结构体的标签被命名为SIMPLE,没有声明变量
struct SIMPLE
{
    int a;
    char b;
    double c;
};
//用SIMPLE标签的结构体,另外声明了变量t1、t2、t3
struct SIMPLE t1, t2[20], *t3;
 
//也可以用typedef创建新类型
typedef struct
{
    int a;
    char b;
    double c; 
} Simple2;
//现在可以用Simple2作为类型声明新的结构体变量
Simple2 u1, u2[20], *u3;

而以下这种方式也时常见到

typedef struct QNode

{
QElemType data; //数据域 

struct QNode *next; //指针域 

}QNode,*QueuePtr;

首先阐述关键字typedef的含义:

typedef 为C语言的关键字,作用是为一种数据类型定义一个新名字,这里的数据类型包括内部数据类型(int,char等)和自定义的数据类型(struct等)

将以上代码段分解:

typedet struct QNode QNode    //将结构体类型struct QNode重命名为QNode

typedet struct QNode * QNode    //将类型名struct QNode *重命名为QNode

注意,在之后的过程中依然可以用struct QNode来定义变量,且与QNode定义的变量类型相同

因此

QNode N;  //等价于struct QNode * N;

 

posted on 2021-07-13 10:57  Ake丶  阅读(90)  评论(0)    收藏  举报

导航