关于链表数组的问题

发布于 2021-11-12 07:35:02 字数 187 浏览 929 评论 6

链表的节点基本定义是这样子的:

struct node
{

  int data;

node* next;

}

我的疑问来了,“node* next;” 在结构体以内,也就是说这个结构体还没结束定义,那么怎么直接定义了一个node*类型

的指针呢?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

终陌 2021-11-18 03:42:04

指针占的字节数是一定的,指针的值就是一个指向node类型的值的首地址,这个地址在编译的时候给定,并确定是什么类型的指针。所以可以这样写。

德意的啸 2021-11-18 03:37:36

那就这么写呗

struct node *next;
本王不退位尔等都是臣 2021-11-17 23:58:19

指针是不可预知的。你如果一定要完整的话,那就 node *next = null;

把回忆走一遍 2021-11-17 19:44:05

指针表示内存单元,或者叫内存单元的编号,整数,一般来说大小定的.所以每new一个node要分配多少内存是确定的,如果你sizeof(node),会得到8(假设int是32位而指针也是32位).而指针的类型,将决定对内存的操作,所以如果你访问了node->next,将会访问到一个大小为8byte的内存.虽然有没定义完的感觉,但是编译器知道你要申请多少内存.

奢华的一滴泪 2021-11-15 21:39:54

指针的长度由操作系统来决定。。

网名女生简单气质 2021-11-13 14:17:32

node* next; 只是一个指针,不需要知道node是什么类型,占多少字节,所以没有问题的,
但不能这样写:
struct node
{
  int data;
node next; //错误,因为不知道node所占字节,无法为其分配空间
}

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文