C语言中结构体的高级应用与操作技巧
1. 结构体指针的使用
在C语言里,结构体指针是极为常用的。比如以下代码:
pp = &origin;
printf("origin is (%d,%d)\n", (*pp).x, (*pp).y);
这里 (*pp).x 的括号是必需的,因为结构体成员运算符 . 的优先级高于 * 。表达式 *pp.x 实际意味着 *(pp.x) ,这是非法的,因为 x 并非指针。
为了简化操作,C语言提供了一种简写方式。若 p 是指向结构体的指针,那么 p->member-of-structure 就可用于引用特定成员。所以上述代码也能写成:
printf("origin is (%d,%d)\n", pp->x, pp->y);
. 和 -> 运算符都是从左至右结合的。例如有如下定义:
struct rect r, *rp = &r;
那么下面四个表达式是等价的:
- r.pt1.x
C语言结构体高级应用与操作技巧
超级会员免费看
订阅专栏 解锁全文
310

被折叠的 条评论
为什么被折叠?



