只能是取成员运算符优先级 高于 取地址运算符优先级
其实仔细想一下,如果不这样就乱套了。。。
#include <stdio.h> typedef struct data_t{ int a; }data_t; int main(int argc, char* argv[]) { data_t data; data_t *p = &data; printf("取地址 %p\n", &data.a); printf("取地址 %p\n", &(data.a)); printf("取地址 %p\n", &p->a); printf("把成员值当做地址 %p\n", (&data)->a); return 0; }