c - 在结构内声明结构时指向结构的指针
问题描述
我有一个关于结构定义和指针的问题。
在链表节点结构的定义中我们定义结构如下:
typedef struct node
{
int data;
struct node *next;
}Node;
为什么我们要使用这种声明方式而不是:
typedef struct node
{
int data;
struct node next; //changed this line
}Node;
提前致谢!
解决方案
实际上我们这样做是因为,我们避免了递归调用。假设考虑您的第二种情况。您在节点本身内部调用节点。那么节点的大小是多少。大小(int)+大小(节点)。然后再次对于节点大小变为 sizeof(int)+sizeof(node)。所以这是一个不可阻挡的递归过程。所以我们使用第一种情况,因为避免了递归过程。它只是指向相同类型结构的对象。
推荐阅读
- asp.net - 如何在活动目录中创建基于用户角色重定向的登录页面
- android - MPAndroidChart 右标签的文本对齐
- python - 在python中生成一个包含6维唯一元素的列表
- r - 在变量组中重新分配列值
- sql - Postgresql 选择计数查询需要很长时间
- c++ - && 和 || 操作员未按预期工作
- html - 用css制作的汉堡图标不能在iphone中打开菜单
- node.js - 如何在graphql方案中迭代json嵌套数组
- mysql - 未安装 mysql-community-client-5.6.40-2.el6.x86_64.rpm 的公钥。怎么修?
- javascript - 如何摆脱输入值的问题?