1 typedef char ListData; 2 //表示以后可以用ListData来代替char类型 3 4 typedef struct node{ //此处node,只在结构体中出现和使用 5 ListData data; 6 struct node *link; 7 }ListNode; //表示将整个结构体命名为ListNode,也就是说现在ListNode就是一种像int、char等的数据类型了,可以用它来定义别的节点 8 9 typedef ListNode *LinkList; //此处,表示以后可以用*LinkList来代替ListNode类型,其中LinkList表示的是指针,*LinkList表示的是指针所指的节点,即ListNode 10 11 LinkList first; //表示定义了一个指针,叫做first,但不能说此时它就是头指针了,首先还要进行空间分配,其次只有在它的基础上继续插入别的指针并且始终保持它在最前面才行 12 13 14 ==================以下要好好理解===================== 15 16 ListNode *p; //定义了一个指针,指向*p节点 17 18 LinkList p; //和上式效果相同,直接定义了一个指针 19 20 所以说, 21 ListNode *p = first; 22 和 23 ListLink first; 24 中的first都是指针,p也是指针 25 26 更好的写法是 27 ListNode* p = first; 28 29 类比: 30 typedef int* intPointer; 31 32 int* p, *q; 33 等价于 34 intPointer p, q; 35 36 注意: int* p 等价于 int *p 37 38 补充: 39 //指针可以理解为一段地址,指向着某个element 40 41 //定义一个指针 42 int* pCount; 43 char* pLetter; 44 45 //&表示取地址符号 46 pCount = &count; 47 48 //由指针得到所指内容,用*符号 49 int a = *pCount;
时间: 2024-11-13 15:19:32