声明一个结构体类型的一般形式为:
struct 结构体名 {成员表列};
如:struct student
{
int num;
char name[20];
char sex;
int age;
float score;
char addr[30];
} ;
定义结构体类型变量:
(1)先声明结构体类型再定义变量名
例如:struct student student1, student2;
(2)在声明类型的同时定义变量
这种般形式为:
struct 结构体名
{
成员表列;
}变量名表列;
注意
(1)不能将一个结构体变量作为一个整体进行输入和输出。
(2) 可以引用结构体变量成员的地址,也可以引用结构体变量的地址。
结构体成员的表现形式:
结构体变量.成员名
(*p).成员名
p->成员名
其中->称为指向运算符。
处理动态内存所需的函数
库函数提供动态地开辟和释放存储单元的
有关函数:
1)malloc函数: void *malloc(unsigned int size);
其作用:是在内存的动态存储区中分配一个长度为size的连续空间。
返回值:是一个指向分配域起始地址的指针(类型为void)。
如果此函数未能成功地执行(例如内存空间不足),则返回空指针(NULL)。
2)free函数:
void free(void *p);
作用:
释放由p指向的内存区,使这部分内存区能被其他变量使用。
p是最近一次调用malloc函数时返回的值。
free函数无返回值。
用typedef定义类型的方法:
(1)先按定义变量的方法写出定义体(如:int i)。
(2)将变量名换成新类型名(例如:将i换成COUNT)。
(3) 在最前面加typedef
(例如:typedef int COUNT)。
(4) 然后可以用新类型名去定义变量。
struct 结构体名 {成员表列};
如:struct student
{
int num;
char name[20];
char sex;
int age;
float score;
char addr[30];
} ;
定义结构体类型变量:
(1)先声明结构体类型再定义变量名
例如:struct student student1, student2;
(2)在声明类型的同时定义变量
这种般形式为:
struct 结构体名
{
成员表列;
}变量名表列;
注意
(1)不能将一个结构体变量作为一个整体进行输入和输出。
(2) 可以引用结构体变量成员的地址,也可以引用结构体变量的地址。
结构体成员的表现形式:
结构体变量.成员名
(*p).成员名
p->成员名
其中->称为指向运算符。
处理动态内存所需的函数
库函数提供动态地开辟和释放存储单元的
有关函数:
1)malloc函数: void *malloc(unsigned int size);
其作用:是在内存的动态存储区中分配一个长度为size的连续空间。
返回值:是一个指向分配域起始地址的指针(类型为void)。
如果此函数未能成功地执行(例如内存空间不足),则返回空指针(NULL)。
2)free函数:
void free(void *p);
作用:
释放由p指向的内存区,使这部分内存区能被其他变量使用。
p是最近一次调用malloc函数时返回的值。
free函数无返回值。
用typedef定义类型的方法:
(1)先按定义变量的方法写出定义体(如:int i)。
(2)将变量名换成新类型名(例如:将i换成COUNT)。
(3) 在最前面加typedef
(例如:typedef int COUNT)。
(4) 然后可以用新类型名去定义变量。