在我阅读的过程中,我遇到了写于 1993 年(或者可能是 1893 年,他们离开了世纪和千年)的WG14 Defect Report #51 。在那里的代码示例中,显然->>
在指向struct
. 我在我找到的任何运算符优先级表中都找不到它,所以我想知道,它是否曾经是一个运算符,如果是这样,这个运算符是做什么的(或做了什么,视情况而定)?
起初我认为这是一个错字,但它在文本中又被复制了两次,在对问题的响应中又在代码示例中被复制了一次,我很难相信它只是滑过至少两名 C 专家而没有被注意到,当它跳出像我这样的新手时。它也是代码的焦点,很容易注意到,并且从未被纠正过。
这是添加了缩进的代码:
#include <stdlib.h>
struct A {
char x[1];
};
main()
{
struct A *p = (struct A *) malloc(sizeof(struct A) + 100);
p->>x[5] = '?'; /* This is the key line [for both them and us] */
return 0;
}
我尝试使用 C 和 C++ 编译器编译此代码,但在任何一个中都无法解析。也许这是 C 的早期版本中不再使用的某个运算符?
这感觉很可疑,这个运算符的名称是什么:“-->”?问题,但我认为这不是其他两个运算符的组合,我看不出它如何划分并有效。