复习回顾:内容包括定义普通结构体类型、指针结构体类型、typedef使用、指针类型结构体访问数据域方式。
对结构体中一些细节问题进行梳理,直接上代码。
#include<stdio.h>
#include<malloc.h>
/*
*Node是定义结构体取的名字,用时需要写成 struct Node name;
*Node1,*Node2是Node结构体的其他名字,相当于struct Node的作用
*Node1定义指针型结构体时:Node1 *p; *Node2定义指针型结构体时:Node2 p;他们作用一样。
*/
typedef struct Node{
int data;
struct Node *next;
}Node1,*Node2;
int main()
{
printf("node1 node3普通类型,node2 node4指针类型\n");
struct Node node3; //1***传统方式定义一个结构体
node3.data=4;
printf("普通类型node3.data:%d\n",node3.data);//普通类型只能通过 .来访问数据
Node1 node1; //2***使用typedef命名的标识定义一个结构体
Node1 *node2; //3***使用typedef命名的标识定义一个结构体指针
Node2 node4; //4***使用typedef命名的指针标识定义一个结构体指针
node2 = (Node1 *)malloc(sizeof(Node1));
node4 = (Node2)malloc(sizeof(Node2));
node4->data=6;
printf("指针类型node4->data:%d\n",node2->data);
node1.data=2;//普通结构体类型只能通过.的方式访问结构体数据。
node1.next=node2;
printf("普通类型node1.data:%d\n",node2->data);
node2->data=3; //指针类型的结构体变量,可以使用 -> 的方式访问数据,不能直接使用 . 的方式直接访问
printf("指针类型node2->data:%d\n",node2->data);
(*node2).data=4; //指针类型的结构体变量,可以使用 (*node2). 的方式访问数据
printf("指针类型(*node2).data:%d\n",node2->data);
system("pause");
return 0;
}
结果如下: