您的位置:首页 > 编程语言 > C语言/C++

C++学习第5篇-变量范围及其他数据类型

2012-02-25 20:06 309 查看
1. 段落和局部变量

段落,亦称混合语句,即由{和}括起来的语句,看作单一的语句执行。



段落是可以嵌套的:



虽然嵌套的层数没有限制,建议层数在3~4层。

变量的范围,即变量的可视范围,在段落中声明的变量称作局部变量。



如上图所示,nValue和dValue都属于局部变量,下图是说明不同段落的变量访问:



段落的外部不能访问内部的变量,若内部的变量与外部变量同名,内部的覆盖外部的变量:



2. 全局变量

声明在段落以外的变量称为全局变量,拥有程序级有效范围。



全局变量可以跨过多个文件,通过前置声明或头文件,使用extern关键字;



使用头文件的,一般是全局变量用在多于2个文件中:



注意:1)尽量避免局部变量和全局变量同名;

2)除非是真正需要,才使用全局变量;因为全局变量可以在任何程序中修改它的值。

3. 文件范围和static关键字

文件范围,即变量仅仅在声明的文件中使用;通过static关键字声明;



自动持续变量,即其所在有效范围退出后,其值还原;



固定持续变量,即使其所在有效范围退出,程序运行期间,其值保持为最新:



4. 类型转换

1)变量赋值时,很多时候为隐式转换;类型的转换顺序:

Long double (highest)

Double

Float

Unsigned long int

Long int

Unsigned int

Int (lowest)

2)对象类型转换,第二种为显式转换:

建议使用:static_cast来进行安全类型转换;



5. 枚举类型

枚举属于自定义数据类型,每个枚举的值对应了一个符号常量;使用enum关键字



定义枚举,知道声明枚举变量时,才分配内存空间;

每个枚举都相当于一个整型值:



可以显示赋予枚举一个常量数值,若为空的,后一个值比前一个值大1;

枚举作为单一类型,重新给变量赋值其他枚举,会产生编译错误;

枚举比数值更有描述性,并且可以在调试中显示,比较实用。

6. 类型别名-typedef

使用typedef关键字定义类型的别名:



使用类型别名,可以隐藏类型的多于描述,如跨平台字节数:



7. 结构体类型

结构体类型属于聚合类型,不同数据类型组合一起;



可以通过成员选择器'.'来访问结构体的成员;



结构体变量可以作为函数参数传递,如:



结构体内亦可以包含其他结构体:



【免责特此声明:

1)本内容可能是来自互联网的,或经过本人整理的,仅仅代表了互联网和个人的意见和看法!

2)本内容仅仅提供参考,任何参考该内容造成任何的后果,均与原创作者和本博客作者无关!】
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: