关于C语言结构体自定义类型

来源:百度知道 编辑:UC知道 时间:2024/05/21 20:02:59
type struct
{
int a;
float b;
struct *p;

} STUDENT;

typedef struct stu
{
int a;
float b;
struct std *p;
} STDUENT;
那位高手能给我讲解一下这两个的不同之处,非常感谢!!!
不好意思你们两个说的都不对,这个自定义绝对是正确的,但是我不知道区别在哪里?

我想第一种形式应该是:吧
struct stu
{
int a;
float b;
struct *p;

} STUDENT; (这里定义了一个stu结构体,并定义了一个该类型的结构体变量STUDENT)
在这种形式下以后还需要定义stu结构体变量是必须使用语句:
struct stu 变量名;

第二种形式:
typedef struct stu
{
int a;
float b;
struct std *p;
} STDUENT;

区别是,使用时只需要:stu 变量名;

**********************************
补充回答:
typedef为C语言的关键字,作用是为一种数据类型定义一个新名字。这里的数据类型包括内部数据类型(int,char等)和自定义的数据类型(struct等)。

在编程中使用typedef目的一般有两个,一个是给变量一个易记且意义明确的新名字,另一个是简化一些比较复杂的类型声明。

type struct //这个type是可以省略的。
{
int a;
float b;
struct *p;

} STUDENT; //这样的定义只是在结构体定义时定义了一个这样类型的STUDENT结构体。
这个结构体定义没有给出结构体类型名,所以以后也不能再向上面那样在程序的其他地方定义这样类型的结构体变量了。

  首先,定义一个结构的一般形式为:


  struct结构名

  {

  //成员表列

  };

  成员表由若干个成员组成, 每个成员都是该结构的一个组成部分。对每个成员也必须作类型说明,其形式为:“类型说明符 成员名;”。成员名的命名应符合标识符的书写规定。例如:


  struct stu