打印
[开发资料]

指针链

[复制链接]
460|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
AdaMaYun|  楼主 | 2024-3-5 20:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
指针链经常被用于访问结构数据。例如,常用的代码如下:

typedef struct { int x, y, z; } Point3;
typedef struct { Point3 *pos, *direction; } Object;

void InitPos1(Object *p)
{
   p->pos->x = 0;
   p->pos->y = 0;
   p->pos->z = 0;
}

然而,这种的代码在每次操作时必须重复调用p->pos,因为编译器不知道p->pos->x与p->pos是相同的。一种更好的方法是缓存p->pos到一个局部变量:

void InitPos2(Object *p)
{
   Point3 *pos = p->pos;
   pos->x = 0;
   pos->y = 0;
   pos->z = 0;
}

另一种方法是在Object结构中直接包含Point3类型的数据,这能完全消除对Point3使用指针操作。

使用特权

评论回复
沙发
LOVEEVER| | 2024-3-9 21:12 | 只看该作者
在Object结构中直接包含Point3类型的数据,这能完全消除对Point3使用指针操作。

使用特权

评论回复
板凳
星辰大海不退缩| | 2024-3-11 10:15 | 只看该作者
指针链经常被用于访问结构数据

使用特权

评论回复
地板
OKAKAKO| | 2024-3-11 20:19 | 只看该作者
指针的使用一定要注意过程的选择以及细节数据结构

使用特权

评论回复
5
小小蚂蚁举千斤| | 2024-3-18 16:38 | 只看该作者
在Object结构中直接包含Point3类型的数据,这能完全消除对Point3使用指针操作

使用特权

评论回复
6
小夏天的大西瓜| | 2024-3-18 19:00 | 只看该作者
编译器不知道p->pos->x与p->pos是相同的。一种更好的方法是缓存p->pos到一个局部变量

使用特权

评论回复
7
中国龙芯CDX| | 2024-3-21 15:23 | 只看该作者
指针链经常被用于访问结构数据

使用特权

评论回复
8
jf101| | 2024-3-22 11:28 | 只看该作者
指针链与链表数据结构应该是异曲同工

使用特权

评论回复
9
szt1993| | 2024-3-25 15:34 | 只看该作者
指针链经常被用于访问结构数据

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

240

主题

1800

帖子

3

粉丝