首页 > 代码库 > 常见关键字用法(struct,typedef)

常见关键字用法(struct,typedef)

一、结构体sturct语法基础:

技术分享
/*结构体说明:1、结构体是一种构造数据类型,将不同类型的数据组合成一个整体2、结构体定义: struct  结构体名  { 类型标识符  成员名; };3、struct是关键字,不能省略;结构体名可以省略,无名结构体;成员类型可以是基本型或构造型;4、结构体变量的定义:   (1)先定义结构体类型,在定义结构体变量: struct 结构体名 {类型标识符  成员名;};  struct 结构体名  结构体变量名;   (2)定义结构体类型的同时定义结构体变量: struct 结构体名 {类型标识符  成员名;} 结构体变量名;   (3)直接定义结构体变量(没有结构体名的无名结构体):struct  {类型标识符 成员名;} 结构体变量名; 这样没有结构体名的,只能这样定义一次,也就是说不能再向(1)那样在后面随意定义了  5、结构体变量的引用:   (1)结构体变量不能整体引用,只能引用变量成员   (2)结构体变量引用方式:结构体变量名.成员名   (3)例如 struct 结构体名 {类型标识符 成员1;} 结构体变量1,结构体变量2;这样,可以把一个变量赋值给另一个变量,如 结构体名.变量1=结构体名.变量1;6、结构体变量的初始化:   (1)形式一:struct 结构体名 { 类型标识符  成员名;} ; struct 结构体名 结构体变量={初始数据};   (2)形式二:struct 结构体名 { 类型标识符  成员名;} 结构体变量={初始数据};7、结构体数组:   (1)结构体数组就是,用一个数组来包括所有的结构体变量,数组的每个元素,就是一个结构体变量;   (2)形式一:struct 结构体名 { 类型标识符  成员名;} ; struct 结构体名 结构体数组   (3)形式二:struct 结构体名 { 类型标识符  成员名;} 结构体数组;   (4)形式三:struct { 类型标识符  成员名;} 结构体数组;8、结构体数组初始化:在前面的基础上加上初始变量组的各个成员   (1)形式一:用大括号将各个变量的一组成员括起来:结构体名 结构体数组名[]={ {成员1值1,成员2值1},{成员1值2,成员2值2};    (2)形式二:如果不加括号分开,那么按顺序排:结构体名 结构体数组名[]={成员1值1,成员2值1,成员1值2,成员2值2};9、结构体和指针   (1)指向结构体变量的指针      a.定义形式:struct 结构体名 *结构体指针名;      b.使用结构体指针变量引用成员形式:(*结构体指针名).成员名 或者 结构体指针名->成员名  或者  结构体变量名.成员名   (2)指向结构体数组的指针   (3)用指向结构体的指针作函数参数      a.用结构体变量的成员作参数----值传递      b.用指向结构体变量或数组的指针作参数----地址传递      c.用结构体变量作为参数------多值传递,效率低*/
View Code

 

二、typedef语法基础:

技术分享
/*typedef说明:1、typedef是C语言的关键字,作用是为一个数据类型定义一个新的数据类型,它并没有新建一种新的数据类型,只是把原有数据类型换了一个名字而已2、用法一:为现有的数据类型定义同义词,便于记住和归类使用等,格式:typedef  原有数据类型  定义新的名字;定义之后,可以在任何需要使用原数据类型处,用新的名字替换;例如:typedef int size; 以后就都可以用size来代替int;3、用法二:用来掩饰复合类型:           a.数组,格式:typedef 原数据类型名  数组; 例如:typedef char line[81];以后line a, b; 就等价于 char a[88],b[88];           b.指针,格式:typedef const 原数据类型名  指针 ;例如:typedef char *pstr; 以后使用pstr就相当于char *;(只要是指针生命typedef,不管什么时候都需要在typedef中加一个const,以使得该指针本身是常量,而不是对象。4、用法三:在链表(struct)中的应用:格式:typedef struct {类型标识符,成员名 }结构名别名;例如:typedef struct { int a; int b;} MY_TYPE; 这样声明之后,以后如果需要定义结构就直接MY_TYPE tmp;tmp是满足这个结构的一个变量;           如果没有家typedef的话,后面直接定义肯定不能省略结构体名,定义的时候struct 结构体名 变量名,这样的形式来定义了*/
View Code

 

常见关键字用法(struct,typedef)