Error request for memberin something not a structure or union(指针类型的转换)

xiaoxiao2021-02-28  108

运行环境,PC 64位,编译工具:Dec-C++

上个例子就清楚了。

#include <stdio.h> typedef struct { int num; char name[10]; }Stu,*ptrStu; int main(void) { Stu Tom = {10,"Tom"}; char *p = &Tom; printf("num=%d,name=%s\n",p->num,p->name);//编译时出错,要对指针进行显式的类型转换 printf("num=%d,name=%s\n",(ptrStu)p->num,(ptrStu)p->name); /*[Error] request for member 'num' in something not a structure or union。 ()和->优先级相同,且从左到右结合。此处,不知为何出错,保险起见,加一个().*/ printf("num=%d,name=%s\n",((ptrStu)p)->num,((ptrStu)p)->name);//ok return 0; }

转载请注明原文地址: https://www.6miu.com/read-37486.html

最新回复(0)