- 结构体
- 声明:
struct Student
{ int number;
char name[19];
};
2、定义:
struct Student student;
一般是:
<pre name="code" class="cpp">struct Student //也可以不指定类型名Student
{ int number;
char name[20];
}stu;
注意:计算机对内存的管理是以字为单位的,如果一个字中只存放一个字节,但改字的其他三个字节不会存放数据,而是从其他字开始存放数据。所以sizeof得到的长度是24,4的整数倍
3、初始化:
可以定义的时候初始化,或者之后初始化
struct Student //也可以不指定类型名Student
{ int number;
char name[20];
}stu={1,“aaa”};
stu.number=2;
结构体数组:
struct Student //也可以不指定类型名Student
{ int number;
char name[20];
}stu1[3];
结构体指针:
一个结构体变量的起始地址
struct Student *pt;
pt=&stu;
<pre name="code" class="cpp"><pre name="code" class="cpp">pt->number=5;
链表:用指针处理链表
struct Student
{ int number;
char name[20];
struct Studen *next;
}stu;
- 共用体:用同一段内存,存放不同类型的变量
在数据处理时,对同一段空间安排不同的用处时,用union
长度是最长的成员的长度
struct Student
{ int number;
char name[20];
<span style="color:#CC0000;"> union
{int class;
char position[20];
}category;</span>
}stu,stu2;
stu=p;//不能对共用体变量名赋值
p=stu;//也不能引用一个共用体变量名来得到一个值
stu=stu2;//同类型的共用体变量可以相互赋值
category.class=1;//赋值
- 用typedef声明新类型名
- 声明一个新类型名的方法是:
- 先按定义变量的方法写成定一体,如int i;
- 将变量名换成类型名 ,int count;
- 在前面加typedef,如typedef int count ;
- 用新类型名去定于变量
命名一个新类型名代替结构体类型:
typedef struct
{ int number;
char name[20];
}Stu;
Stu stu;
Stu *p;
命名一个新类型名代替数组类型:
typedef int Mun[20];
Mun m;
命名一个新类型名代替指针类型:
typedef char *String;
String c,s[10];
命名一个新类型名代替指向函数的指针类型:
typedef int (*point)(int)
注意:1、当不同源文件中用到同一数据类型,常用typedef声明,可以把typedef声明的一些变量放在一个文件中,在需要用到的文件中用#include包含进来。
2、注意 typedef和define的区别