忧默的小男孩 2022-09-23 18:06 采纳率: 94.4%
浏览 32
已结题

关于结构体链表的问题

img

img

img

第一张图片右边那部分,一开始构造了指针 p q o ,其中p,q,o是node类型的指针,之前有定义说:我们把存的值是地址的变量叫做指针,以p为例子,因为node是自己造的结构体,这个node构造体中有值和指针,所以p这个变量中除了有值之外,还有一个指针,一开始构造的时候会默认为空指针(即什么也不指),node* p=new Node(1),把新构造的结构体的地址赋值给p,所以现在p的值部分存的是Node 1的地址 p的指针部分什么也没存,q,o也一样,然后p-> next = q 把q赋值给p 中的next指针,一般把一个地址赋给一个指针的话需要写&取地址符号,代表取变量的地址,这里因为q的值本来就是一个地址,所以没有写取地址符号,直接把Node 2的地址给了p的指针,那么p的指针就指向了Node 2,然后一系列操作下来,不就变成了我在草稿纸上画的图片了吗,怎么会是第二张图片上的样子呢?

  • 写回答

4条回答 默认 最新

  • CSDN专家-link 2022-09-23 18:48
    关注

    因为node是自己造的结构体,这个node构造体中有值和指针,所以p这个变量中除了有值之外,还有一个指针
    ==这个理解有问题,p指针存储的地址是node结构体的首地址,没有什么“除了有值之外,还有一个指针”的说法
    换个白话理解一下
    结构体也好,普通变量也好,就像一栋楼,或者一个小区。指针就是一张白纸,纸上写着楼号或者小区地址而已。甚至这个地址到底是盖的小区,商业大楼都无所谓,这就是void指针,只是一个地址而已。如果带着类型,比如结构体指针,整型指针,那么就是在纸上还写了这个地址到底盖了什么建筑。在这种情况下,编译器编译的时候就会进行检查,如果指针指向的地址盖的不是类型所指定的建筑,就会报错提示。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 10月1日
  • 已采纳回答 9月23日
  • 创建了问题 9月23日

悬赏问题

  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?