首页 > 代码库 > 一个关于结构未解决的困惑
一个关于结构未解决的困惑
一、问题描述:结构别名问题,一个是BiTree, 一个是*bi。
第一个别名在主函数体外可以用,内部不能用;第二个都可以用。
如果不写第二个别名,第一个在主函数体内外都可以用。
二、问题代码
1 #include<stdio.h> 2 3 typedef struct BiTree{ 4 char data; 5 struct BiTree *lchild; 6 struct BiTree *rchild; 7 }BiTree,*bi; 8 9 typedef struct AssistNode{10 BiTree *e; // 这里这样是没有问题的11 int isFirst;12 }AssistNode,*assist;13 14 void main(){15 //这样是没问题的16 assist a1;17 a1= (assist*)malloc(sizeof(assist));18 19 /*这里就不行了,只能使用第二种写法,写作AssistNode和BiTree都报用作表达式非法20 AssistNode *a2;21 a2= (AssistNode*)malloc(sizeof(AssistNode));*/22 23 a1->isFirst= 0;24 printf("%d", a1->isFirst);25 getchar();26 }
三、可能原因
别名或许有作用域?
一个关于结构未解决的困惑
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。