本帖最后由 sunyongnan 于 2015-8-11 22:40 编辑
一、全局变量
1、全局变量是什么?
在所有函数外部定义的变量,称为全局变量。
2、全局变量有什么用?
用于存储一个需要长期存于内存,并需要改变的变量。
3、全局变量怎么用?
跟普通变量每区别,只是位置在所有函数之外。
4、全局变量什么时候用?
当需要定义一个跟随程序一直存于内存中,并可以被其它函数共享的变量的时候。
5、全局变量有什么特点?
1)声明周期跟随程序,程序启动创建,程序退出其才会销毁。
2)作用域是其所在位置之下的所有函数,都可以共享并改变。
3)变量的使用遵循就近原则,如果函数内有同名变量,那么用函数自己的。
4)如果没有初始化赋值,默认值是0。
二、结构体
1、结构体是什么?
是一种数据类型,是构造类型,里面可以存不同类型的数据。
2、结构体有什么用?
用于封装不同的数据类型到一个结构中,方便使用。
3、结构体怎么用?
定义:1)定义结构体类型:struct 结构体类型(数据类型1 名称;数据类型2 名称;...);2)定义结构体变量及赋值:struct 结构体类型 变量名={数据1,数据2,...};
取值:变量名.结构体元素变量名;
赋值:变量名.结构体元素变量名=新值;
4、结构体
当需要把关联的不同数据类型封装起来一起使用的时候。
5、结构体有什么结构?
1)可在定义结构体类型时,同时定义结构体变量名,可定义匿名类型结构体。
2)同一作用域内不可重复定义结构体类型和结构变量,匿名类型结构体除外。
3)可在函数内也可在函数外,效果及用法类型于局部变量和全局变量,也可嵌套定义。
4)可同时在函数内外定义同一个类型,使用同样遵循就近原则,结构体变量也是如此。
三、结构体数组
1、结构体数组是什么?
是数组,只不过数组里每一个元素是结构体类型。
2、结构体数组有什么用?
用于存储多个有关联的结构体。
3、结构体数组怎么用?
定义及初始化赋值:struct 结构体类型 数组名[长度]={结构体1,结构体2};
取值:数组名[角标];单独赋值:数组名[角标]=新的结构体;
4、结构体数组什么时候用?
当需要存储多个有关联的结构体,并作为一个整体使用时。
5、结构体数组有什么特点?
遵循数组的特点。
四、结构体的指针
1、结构体的指针是什么?
是指针,只不过指针类型是结构体类型。
2、结构体的指针有什么用?
用于存储结构体的地址,并操作地址对应的结构体空间里的数据。
3、结构体的指针怎么用?
定义及初始化赋值:struct 结构体类型 *指针名=&结构体变量
取值:(*指针名).结构体元素名; ---等效于---> 指针名->结构体元素名; (结构体独有的用法)
赋值:(*指针名).结构体元素名=新值; ---等效于---> 指针名->结构体元素=新值
4、结构体的指针什么时候用?
当需要使用指针操作结构体时。
5、结构体的指针有什么特点?
1)指针移动对结构体本身没有意义。
2)结构体名并不包含第一个元素的地址。
五、枚举
1、枚举是什么?
是一种数据类型,称为枚举类型;是构造类型的一种,里面存的都是有别的的整型常量。
2、枚举有什么用?
可以把多个整型常量以别名的形式封装成一个整体,便于别的变量识别并取值使用。
3、枚举怎么用?
定义:1)定义枚举类型 enum 枚举类型(元素1,元素2,...); 或 {元素1=0,元素2=1,...}; 2)定义枚举变量及赋值:enum 枚举类型 变量名=对应枚举里的一个元素名;
取值:变量名=枚举元素名;
4、枚举什么时候用?
当一个变量只有固定的多个int取值范围时。
5、枚举有什么特点?
1)枚举类型只能是int值,且不能直接用int常量,需要用别名(建议全部大写)。
2)如果不设定值,那么默认第一个元素是0,以此类推。
3)同一个作用域内不能出现重复的元素,不同的枚举类型也不行。
六、宏定义
1、宏定义是什么?
是一个替换代码的预处理指令。
2、宏定义有什么用?
可以在编译之前进行代码替换。
3、宏定义怎么用?
开始替换:#define 被替换内容 替换成的内容。如:#define kLength 6 表示从这行开始下面所有的KLength替换成6
结束替换:#undef 被替换内容。如:#undef KLength 表示到这一行,宏定义失效。
4、宏定义什么时候用?
当需要用一些重复性代码或简单的函数运算时,可以用宏定义,提高效率。
5、宏定义有什么特点?
1)命名尽量以大写或小写k开头,便于区分(规范)。
2)被双引号的引起来的不会被替换。
3)宏定义只会做代码替换,不会关注任何逻辑,容易出现优先级错误(加括号解决)。
4)替换可以设置作用域,如果不设置,作用域则是这行代码出现到代码的最后一行。
|
|