我刚刚遇到了一件非常奇怪的事情:
我有一个结构,说:
typedef struct {
int x;
} STRUCT;
[我知道我可以说没有 typedef 的 struct STRUCT :)]
和一个指针STRUCT *p = NULL;
假设当我在函数中执行它时,这个指针(仍然)为空:
int *a = &p->x;
为什么这实际上有效?但是这个:int a = p->x
给出一个nullptr错误?
编辑:据我所知,'->' 运算符的优先级高于地址(&)。
我刚刚遇到了一件非常奇怪的事情:
我有一个结构,说:
typedef struct {
int x;
} STRUCT;
[我知道我可以说没有 typedef 的 struct STRUCT :)]
和一个指针STRUCT *p = NULL;
假设当我在函数中执行它时,这个指针(仍然)为空:
int *a = &p->x;
为什么这实际上有效?但是这个:int a = p->x
给出一个nullptr错误?
编辑:据我所知,'->' 运算符的优先级高于地址(&)。