类似于
int a[2];
int a[2]={0};
struct tm 相当于 int
懂了么struct在C语言中是一个关键字,用于定义结构数据类型。
问题中的两种定义的区别在于第一种是给student数据类型,重新定义了一个类型别名,而第二种则单纯的表示一种叫做student的数据结构类型。两者的主要区别在于后面直接定义变量时。如下代码,则可以直接在结构体后面定义一个zhang_san的结构体变量。
struct student
{
int num;
struct student next;
}zhang_san;
而第一种的定义,则会出现错误。
typedef struct student
{
int num;
struct student next;
}student zhang_san;
扩展:
“结构”是一种构造数据类型,现在一般叫做用户自定义数据类型,它是由若干“成员”组成的。 每一个成员可以是一个基本数据类型或者又是一个构造类型。 结构即是一种“构造”而成的数据类型, 那么在说明和使用之前必须先定义它,也就是构造它。如同在说明和调用函数之前要先定义一样。
定义一个结构的一般形式为:
struct结构名
{
//成员表列
};
成员表由若干个成员组成, 每个成员都是该结构的一个组成部分。对每个成员也必须作类型说明,其形式为:“类型说明符 成员名;”。成员名的命名应符合标识符的书写规定。例如:
struct stu
{
int num;
char name[20];
char sex;
float score;
};
在这个结构定义中,结构名为stu,该结构由4个成员组成。 第一个成员为num,整型变量;第二个成员为name,字符型数组;第三个成员为sex,字符型变量;第四个成员为score,浮点型变量。 应注意在括号后的分号是必不可少的。struct mytype{
int a;
char b;
}instance;
这个就是一个结构体类型mytype的定义,同时定义了一个该类型的结构体变量instance,变量的定义也可以写成这样:struct mytype instance;一是结构标记的声明,如下:
struct point {
int x;
int y;
};
创建了标记point,就可以用它来声明变量:
struct point p1,p2;
注意不能漏掉前面的struct。
结构标记的声明可以和结构变量的声明合并在一起:
struct point {
int x;
int y;
}p1,p2;
二是结构类型的定义:
typedef struct {
int x;
int y;
} point;
然后就可以像内置类型一样使用point,如声明变量:
point p1,p2;
这里不允许写struct point。
定义结构体的关键字是struct。C语言中struct是定义结构体的一个关键字,用于定义结构数据类型。 结构是一种构造数据类型,现在一般叫做用户自定义数据类型。
struct它是由若干成员组成的。每一个成员可以是一个基本数据类型或者又是一个构造类型。结构即是一种构造,而成的数据类型。
结构体的变量
结构体是C语言中一种重要的数据类型,该数据类型由一组称为成员的不同数据组成,其中每个成员可以具有不同的类型。结构体通常用来表示类型不同但是又相关的若干数据。
结构体类型不是由系统定义好的,而是需要程序设计者自己定义的。C语言提供了关键字struct来标识所定义的结构体类型。
关键字struct和结构体名组合成一种类型标识符,其地位如同通常的int,char等类型标识符,其用途就像int类型标识符标识整型变量一样可以用来定义结构体变量。定义变量以后,该变量就可以像定义的其他变量一样使用了。成员又称为成员变量。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)