简单问题求解
typedef struct{int id;
char name;
} STU,*STU;
和
struct STUDENT{
int id;
char name;
} STU,*STU;
有什么区别啊typedef 这个东西不太懂哦!求教 typedef struct{
int id;
char name;
} STU;
是定义了一种名为STU的类型,以后就可以像
STU stu1;
STU stu2;
这样声明定义一个变量,和
int a;
类似。
而后者只是定义了一个这种结构的结构体,每次都要像
struct STUDENT{
int id;
char name;
}stu1;
struct STUDENT{
int id;
char name;
}stu2, stu3;
这样来声明定义一个这样结构的结构体变量。
另外你定义的指针类型重名了,要换一个
typedef struct{
int id;
char name;
} STU, *pSTU;
pSTU stu; 等价于 STU* stu; 使用如下
STU stu;
pSTU pstu;
stu.id = 123;
pstu->id = 1234;
不好意思,错了个地方。
struct STUDENT{
int id;
char name;
}stu1;
这个之后只用
struct STUDENT stu2, stu3;
即可,不需要重复定义结构了 Irony 发表于 2016-5-9 17:23
不好意思,错了个地方。
这个之后只用
懂了额,谢谢大兄弟 真的懂了吗?
看看这个
http://blog.csdn.net/wangweixaut061/article/details/6549768
如果你有时间,建议看完整篇,我就是看完这篇才明白了的。
如果时间不是很充足,那就看看 关于typedef 的那部分 typedef 只是一个关键字就像c语言里面的 intfor double return 等等,它的作就是专门用来给类型取别名的;
typedef student s1{
......
} Student
这里的Student就是 student s1 这个类型的别名,如果没有加typedef 大括号后面就不能加 Student
页:
[1]