c语言结构体知识点

    科技2022-09-02  103

    一、结构体和共用体以或用户定义类型

    如:typedef 类型名 标识符; typedef int INTEGER 该语句把INEGER说明成了一个int 的类型名,在此说明之后,可以用标识符INTEGER来定义整型变量 例如:INEGER a; 等价于int a; 例如:typedef char *CHARP CHARP P; 等价于char *p;

    二、说明一个新的类型名的具体步骤:

    char p 到 char CHARP; 再到 typedef char*CHARP;

    四、结构体类型的说明 ①结构体类型的说明

    struct 结构体标志名 //如:struct student { 类型名 1 结构成员名表1//如:char 类型名 2 结构成员名表2; …… 类型名 n 结构成员名表 n; }

    (1)struct 是关键字,是结构体类型的标志。 (2) ***结构体标志名***和***结构体成员名***都是用户定义的标识符 其中***结构体标志名***是可选项,在说明中可以不出现的,每个结构体成员名表中都可以有多个同类 型 的成员名,他们之间可以用逗号隔开, (3)结构体中的成员名可以和程序中对的其他变量同名;不同结构体中的成员也可以同名 (4)结构体说明要以分号结尾。 例如我们关于日期的说明可以如下:

    struct date { int year; int month; int day; };

    ②关于上述学生档案的结构体类型可以说明结构体的嵌套如下:

    struct student { char name[12]; char sex; struct date { int year; int month; int day; }birthday;//这个体现了结构体的嵌套 flaot sc[4]; };

    五、四种方式去定义结构体类型的变量,数组和指针变量 (1)紧跟在结构体类型名说明进行定义 ①例如:

    struct student { char name[12]; char sex; struct date birthday; float sc[4]; }std ,pers[3]*pstd;

    struct { char name[12]; char sex; struct date birthday; float sc[4]; }std ,pers[3]*pstd;

    ③先说明后定义

    struct student { char name[12]; char sex; struct date birthday; float sc[4]; }; struct student std ,pers[3]*pstd;//

    总结:先说明后定义,说明时不能省略结构体标志名如student,必须用关键字struct和student一起来定义 ④

    typedef struct { char name[12]; char sex; struct date birthday; float sc[4]; }STR; STR std ,pers[3] ,*pstd;

    注意此处STR是一个具体的结构体类型名,他能够唯一的标志这一种结构体类型名,因此,可以用来定义变量,如同使用int char一样,不用写关键字struct。

    六、 ①给结构体变量赋值初值

    struct student { char name[12]; char sex; struct date birthday; float sc[4]; }std ={“Linming”,‘m’,1962.5,10,88,76,85.5,90};//先说明结构体然后定义了一个结构体变量。

    struct bookcart { char num[5]; float money; }b[]={{"NO.1",35.5},{"No.2",25.0}};

    {“NO.1”,35.5}为b[0],{“No.2”,25.0}为b[1] ③

    struct { char ch; int i; float x; }arr[2][3]={{{'a',1,3e10},{'a',2,4e10},{'a',3,5e10}},{{'b',1,6e10},{'b',3,8e10}};
    Processed: 0.008, SQL: 9