为什么指针取消引用C中的前缀运算符?

时间:2016-12-07 21:11:55

标签: c

为什么指针解除引用运算符*设计为前缀运算符,而其他指示符选择器,数组元素选择器[i]和记录字段选择器.f使用后缀运算符。只有后缀选择器,它们的优先级不是问题。

2 个答案:

答案 0 :(得分:3)

int *c = malloc(sizeof(int));
*c=3; //clear statement
c*=3; //would be ambiguous

我不知道为什么用这种方式实现C,但这是我想到的第一件事。

答案 1 :(得分:1)

它可能是一个后缀。 Pascal就是这种情况,它在那里很好用。最后,dmr做出了选择并以这种方式编写。

后缀优点:
  无需request_id: 1, service_id: 3
  从左到右的表达流程

后缀缺点:
  也许更加模糊,取决于   声明从左到右读得少一点