我在这里有一个考试问题,问:
“C运算符 - >是更复杂表示法的简写。解释使用 - >或更复杂表示法的情况。写一个更复杂表示法的例子。”
我不确定考官在这里寻找什么。我的印象是,只有一种方法可以表示结构解除引用,即 - >。有人可以帮忙吗?
答案 0 :(得分:0)
取消引用可以使用->
或(*).
来完成。参见示例
struct point {
int x;
int y;
};
struct point my_point = { 3, 7 };
struct point *p = &my_point; /* To declare and define p as a pointer of type struct point,
and initialize it with the address of my_point. */
(*p).x = 8; /* To access the first member of the struct */
p->x = 8;
很可能你的老师要求(*p).x = 8;
。
答案 1 :(得分:0)
->
语法是(*).
语法的简写,因此struct->member
等同于(*struct).member
。
由于operator priority,括号是强制性的,基本上成员访问(.
)运算符的优先级高于解除引用(*
)运算符。
请记住,程序员很懒惰,而且常常像快捷方式一样。