struct goods { char name [SIZE];//货物名 int count;//货物数量 float price;//货物价格 }; typedef struct goods dataType; //定义一个结构体 typedef struct list { dataType data; struct list *pNext; }LIST; LIST lis; /* 函数名:creation 函数功能:创建一个空结点 函数参数:无 函数返回值:创建成功返回结点的地址,失败返回NULL */ LIST * creation ( ) { //定义指针变量 LIST *pList = NULL; //申请空间 pList = ( LIST * ) malloc ( sizeof ( LIST ) ); //判断,初始化 if ( NULL == pList ) { return NULL; } memset ( pList, 0, sizeof ( LIST ) ); return pList; } /** * 增加商品 * @param name 商品名 * @param count 数量 * @param p 节点 * @return 成功则返回true */ bool add_goods(char name[],int count,LIST *p){ if ( NULL == p ) { return false; } //赋值 strcpy(p->data.name,name); p->data.count = count; return true; }
时间: 2023-08-08 14:06:10 浏览: 50
这段代码定义了一个结构体 dataType,其中包含了货物名货物数量和货物价格三个属性。后定义了一个链表结构体 LIST,其中包含了一个 dataType 类型的数据域和一个指向下一个节点的指针。接着定义了一个 LIST 类型的全局变量 lis。
接下来是一个名为 creation 的函数,其作用是创建一个空节点并返回该节点的地址。首先定义了一个 LIST 指针变量 pList,并动态分配了一个 LIST 结构体大小的内存空间并将其地址赋值给 pList。然后判断 pList 是否分配成功,如果不成功则返回 NULL。最后将 pList 清零并返回 pList 的地址。
接下来是一个名为 add_goods 的函数,该函数用于向链表中添加一个货物。其参数为一个商品名 name、一个数量 count 和一个指向链表节点的指针 p。首先判断 p 是否为空,如果为空则返回假。然后将 name 和 count 赋值给 p 的 data 属性,最后返回真表示添加成功。
相关问题
typedef struct school { int num; //学校编号 char name[20]; //学校名称 int sc
typedef struct school {
int num; // 学校编号
char name[20]; // 学校名称
int score; // 学校分数
} School;
在这段代码中,我们使用了typedef关键字来定义一个名为School的结构体类型。结构体中有三个成员变量。第一个成员变量num表示学校编号,是一个整数类型。第二个成员变量name表示学校名称,是一个字符数组类型,长度为20。第三个成员变量score表示学校分数,也是一个整数类型。
通过typedef关键字的使用,我们可以直接使用School来声明结构体变量,而不需要再使用struct关键字。例如,我们可以使用以下代码声明一个School类型的结构体变量:
School mySchool;
接下来,我们可以对mySchool的成员变量进行赋值和访问操作。例如,我们可以使用以下代码给mySchool的成员变量赋值:
mySchool.num = 1;
strcpy(mySchool.name, "ABC学校");
mySchool.score = 90;
我们也可以使用以下代码访问mySchool的成员变量并打印出来:
printf("学校编号:%d\n", mySchool.num);
printf("学校名称:%s\n", mySchool.name);
printf("学校分数:%d\n", mySchool.score);
通过typedef关键字的使用,我们可以简化对结构体类型的声明和使用,使代码更加清晰和易读。
typedef struct student{ char * name; //名字 int age; //年龄 struct student * classmate; //同桌 }student, * pstudent;里struct student * classmate;
在这个结构体中,struct student *classmate是一个指向struct student类型的指针,它用于存储学生的同桌信息。在结构体定义中,可以使用结构体自身的指针类型来定义结构体中的成员,这种方式通常被称作“自引用”。这样做的好处是可以实现嵌套结构体,也就是一个结构体中包含另一个结构体的指针,从而实现更加复杂的数据结构。在这个例子中,每个学生都有一个同桌,因此可以使用结构体自身的指针类型来存储同桌的信息。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)