typedef
typedef struct{
int ban;
char name;
int num;
float score;
float zong;
}Student;
typedef structStudent
{
int ban;
char name;
int num;
float score;
float zong;
}st;
两个分表代表什么? 本帖最后由 patton88 于 2016-8-12 12:04 编辑
// 这个是重定义匿名结构体为Student
typedef struct
{
int ban;
char name;
int num;
float score;
float zong;
}Student;
// 这个是重定义命名结构体Student为st
typedef structStudent
{
int ban;
char name;
int num;
float score;
float zong;
}st; 本帖最后由 patton88 于 2016-8-12 12:05 编辑
/*
typedef struct StudentB
{
int ban;
char name;
int num;
float score;
float zong;
}st;*/
// 匿名结构体typedef只能一次性定义。而命名结构体typedef定义可以改写为两步
struct StudentB
{
int ban;
char name;
int num;
float score;
float zong;
};
typedef StudentB st; typedef struct
{
int ban;
char name;
int num;
float score;
float zong;
}Student;/* 一个没有本名的结构体,但有一个别名 Student可以直接用 Student tmp ;这样来创建一个结构体变量 */
typedef structStudent
{
int ban;
char name;
int num;
float score;
float zong;
}st;/*一个有本名,也有别名的结构体,可以 struct Student tmp; 或者 sttmp; 这种两种方式来创建变量*/ {:5_94:} 陌雨 发表于 2016-8-12 12:17
typedef struct
{
int ban;
比如第一个我用Student * p
第二个我用st * p
这两个一样么? 第一个是不是错了? patton88 发表于 2016-8-12 11:51
刚好是我不会的问题,虽然不能给楼主解答,但是看到你们发的帖子,也学习到了,谢谢{:10_256:} 学习电脑 发表于 2016-8-13 10:27
比如第一个我用Student * p
第二个我用st * p
晕 没注意最后还有一句 代码’ypedef struct StudentB st;’ 但是写错了 ,应该是 typedef struct StudentB st ,要加一个 struct ;
再来回答你的问题:
第一个没错,因为它的别名是 Student你可以用这个别名定义一个指针变量;
第二个 可以用 struct Student ,也可以用 st定义指针变量
页:
[1]