结构体指针为NULL和结构体的成员指针为NULL的区别
typedef struct Node{
int data;
struct Node * pnext;
}NODE,*PNODE;
PNODE p;
p=NULL和p->pnext=NULL的区别

结构体指针为NULL和结构体的成员指针为NULL的区别
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- a5156520 2022-06-18 22:06关注
如果从逻辑含义上来看的话,p代表首节点或当前节点,p->pnext代表当前节点的下一个节点,p为NULL代表当前节点为空,p->pnext为NULL代表当前节点的下一个节点为空,一般代表用是否为空来判断当前节点是由有值(结构成员data),下面是一个例子(例子与实际编程的情况可能有所不同):
#include <stdio.h> #include <stdlib.h> typedef struct Node{ int data; struct Node * pnext; }NODE,*PNODE; PNODE p; int main(void){ PNODE p = (Node*)malloc(sizeof(Node)); p->pnext=NULL; p->data = 1; //printf("p->data=%d\n",p->data); p->pnext = (Node*)malloc(sizeof(Node)); p->pnext->data = 2; p->pnext->pnext=NULL; // printf("p->pnext->data=%d\n",p->pnext->data); while(p!=NULL){ //代表当前节点不为空,即代表当前节点有值 printf("%d ",p->data); p= p->pnext; //把p指向后一个节点pnext, 如果赋值后的p不为NULL,即代表pnext不为NULL,代表下一个节点有值 } }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录