2016 - 2024

感恩一路有你

c语言struct后面有指针 @数据结构大神,这里为啥要定义两个指针域呢?名字还不一样?

浏览量:1763 时间:2021-03-16 09:39:01 作者:admin

@数据结构大神,这里为啥要定义两个指针域呢?名字还不一样?

Typedef struct node{int data struct node*next}stackenode,*linkstack Typedef将2113定义为struct 5261类型,将linkstack定义为指向struct stackenode的指针类型。它们都是4102类型(与基本类1653 int等相同),当然,它们可以用来定义变量。

至于为什么我们应该使用struct node*next而不是stack node*next或linkstack next来定义指针字段,因为指针字段在上面定义,类型在下面定义。

定义指针字段时,stackenode和linkstack都不是类型。

学习c语言的时候指针应该怎么理解?

简而言之,指针是表示地址的无符号整数。

所以仅仅理解指针是不够的。您还需要知道指针指向的数据空间是如何排列的。这可能涉及到一些与特定CPU/OS相关的知识。如果我们能用计算机体系结构的知识来理解它,它会更深刻、更准确。

例如:

如何存储float/double/long double?

如何在数据空间中组织阵列?

字符串是如何存储的?

如何存储结构和联合体?

位域组织

具体CPU相关部分如下:

整数的存储将涉及CPU大小的指定

浮点数的存储直接关系到FPU的设计

此外,还有一些扩展知识,涉及内存的分配和释放:如何在程序中分配内存?(malloc/free)

什么是堆和堆栈?

总而言之:指针是地址和整数。但要充分利用它,我们需要了解计算机存储空间的分配。困难在这里,突破在这里。

c语言struct后面有指针 c结构体指针申请内存 c语言结构体指针赋值

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。