结构体
在定义一个变量时 次变量拥有诸多 属性 我们需把属性写进去 则不能用普通的定义变量来定义它 如:在写学生管理系统时 学生具有多种属性 性别 年龄等等
这时我们就需要结构体了。
定义:
struct Student
{
char name[10];
int age;
char sex[5];
}st;
注意 结构体内的成员 不能对其进行初始化
调用成员:
void Show(Student *p)
{
printf("%s,%d,%s",p->name,p->age,p->sex);
/printf("s,%d,%s",(*p).name,(*p).age,(*p).sex); //指向符也自带解引用
}
用指针调用的话 使用 ->
非指针使用 . 如:a.name
//结构体数组
Student arr[]={{"liubei",99,"man"},{"caocao",18,"man"}};
结构体的大小
结构体的大小(内存对齐//整除)
struct A
{
char b;//1个字节
int a;//4个字节
};//8个字节
struct B
{
char a;//1+1
short b;//2
int c;//4
};//8
struct C
{
char a;//1+3
int b;//4
short c;//2+6
double d;//8
};//24
struct E
{
int a;//4
char b;//1+3
};//8
typedef
typedef 自定义一种类型
如:
typedef int *PP;//==》由这种变量提升为类型
其中 *pp不变量 而是一种新的类型