You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

创建指向picPtr类型链表数组指定位置的指针,写法是否正确?

问题解答

首先明确核心类型关系:

  • picPtr 是 struct picture* 的别名
  • 函数参数 arr[] 是 picPtr 类型的数组,在函数中会退化为指向picPtr的指针(即picPtr*,等价于struct picture**)

你写的代码:

picPtr* temp = (arr +id);

从语法层面看类型是匹配的——arr + id 计算后确实是picPtr*类型(指向数组第id个picPtr元素的指针),但这和你的需求完全不匹配:

你的需求是获取数组指定位置的链表头指针(也就是数组第id个元素本身,它是picPtr类型的链表头),但这段代码得到的是指向该链表头指针的二级指针。

如果要实现你的需求,正确写法应该是:

// 直接拿到数组第id个位置的链表头指针
picPtr temp = arr[id];
// 或者等价的指针偏移写法
picPtr temp = *(arr + id);

考试被扣分大概率是因为你误解了需求的指针层级:你声明了二级指针,但实际需要的是一级指针(链表头指针)。

内容的提问来源于stack exchange,提问作者salimski

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 10:45:33