本帖最后由 maoxiaomi 于 2015-7-13 17:54 编辑  
 
十九、指针 
14、 指针函数 :类型说明符 *函数名(形参表){函数体}; 
15、 函数指针 
1)定义指向函数的指针变量,返回值类型说明符 (*变量名)(函数的参数); 
2)初始化函数指针:变量名=函数名(返回值类型、参数个数和类型都必须相同,定义时可以不写形参名)。 
3)函数指针可以清晰的调用不同函数,函数指针运算无意义。 
二十、构造类型和结构(structure)体 
1、构造类型:是根据已定义的一个或多个数据类型用构造的方法来定义新的类型(数组类型、结构体类型、共用体类型); 
2、结构体:由若干类型数据用构造的方法构造,struct  结构名 {成员列表}; 
1)结构体定义:struct  结构名 {成员列表};,结构体定义不分配内存,定义结构体变量后才可以分配使用; 
2)结构体变量定义:struct  结构名 {成员列表};struct  结构名 变量名1、变量名2、……; 
3)可以同时定义:struct  结构名 {成员列表}变量名1、变量名2、……;,这种方式可以省略结构名匿名定义; 
4)结构体变量初始化: 
A、先定义后初始化,结构体变量名.成员名=数据;(注字符串可用strcpy); 
B、定义同时初始化, struct  结构名 变量名= {数据1,数据2,……}; 
C、定义同时指定元素初始化,struct  结构名 变量名= {.成员名=数据}; 
5)结构体存储大小:因结构体存储原理要考虑对齐补位问题 
6 )结构体的作用域同变量的作用域 
3、结构体数组 :结构数组的每一个元素都具有相同结构类型的下标结构变量。 
1)定义格式:struct  结构名{成员表列} 数组名 [数组长度] ; 
2)初始化和遍历:综合结构体和数组的初始化及遍历,字符数组也可用scanf初始化; 
4、指向结构体变量的指针: 
1)struct 结构名 *结构指针变量名 ;,存放结构体变量的地址; 
2)间接访问结构体:(*指针名).成员名 或指针名->成员名 
5、结构体嵌套:结构体内可以有其他的结构体变量或自己类型的指针(不能使自己的变量)。 
6、结构体变量及成员值与结构体指针作为函数形参 
1)结构体成员值做函数参数是值传递; 
2)结构体变量做函数参数是所有成员值传递; 
3)结构体指针作为函数参数是地址传递。 
 |   
        
 
    
    
    
     
 
 |