一 常量
(1). 声明常量
C++ 使用关键字 coust 声明常量
- const 变量类型 变量名 = 变量值
如: const int x = 10;
(2). 声明和使用全局常量
使用关键字 extern const 来声明和使用全局常量
classA.cpp
extern
const
int x = 101;
-----------------
main.cpp
extern
const
int te;
int _tmain(
int argc, _TCHAR* argv[])
{
cout << te << endl;
// return 101
}
(3). 编译时才检查 const
C++是静态语言,既 使用前需要进行编译,只有编译通过了才能生成可执行的程序,而 const机制 其实也只是在编译时进行检查,如果发现代码中有对 声明为 const 的类型进行操作时,就会报错. 但编译并生成汇编代码后 const 和 非const
声明
的类型 存储方式是一样,也可以被修改.
二 字面值常量
(1). 并不陌生的字面值常量
顾名思义
字面值常量就是书写时就已经确定其值并只能以其值称呼的常量,如 int i = 10 中 的 10,这里只需简单了解下,后边还会讨论
三 作用域
(1). 什么是作用域
作用域是相对于某个对象来说的,既 对象可以访问的作用范围 就叫做作用域
(2). 判断对象的作用域
通常情况下作用域是指 对象所处花括号内的范围, 出花括号时(出作用域) ,在该作用域中使用一般方式创建的变量或常量将被清除,如
if (
true)
{
int x = 10;
}
const << x << endl;
//error 变量x已经因为出作用域而被清除
(3). 嵌套作用域中存在同名变量时
在 C++中 一个作用域和在其内部的另一个作用域同时声明了同名变量时,内部作用域将使用该域声明的变量,而隐藏其上层作用域的同名变量。(Java中这种情况是不允许的,编译时
会
报错)
int i = 100, sum = 0;
for (
int i = 0; i != 10; i++)
{
cout << i << endl;
// 外部作用域声明的 i =100 已经被隐藏
sum += i;
}
cout << i <<
" | " << sum << endl;
// return: 100 , 45
(4). 范围解析运算符::
范围解析运算符 用于引用 某个类型所包含的其他类型,既
- 类型 :: 内部类型
当
范围解析运算符前部类型为空时,会指向全局
#include
<iostream>
using
namespace std;
int ioz = 10086;
int
_tmain (
int
argc,
_TCHAR*
argv [])
{
{
int ioz = 100;
cout << ioz << endl;
//100
cout << ::ioz << endl;
//10086
}
}
上例中定义了一个未命名作用域, 其作用和一般作用域相同,在一些代码库中会碰到这种写法,
(5). 文件作用域
在文件的最上层作用域 定义类型时使用 static 关键字声明,该类型 的作用域为文件作用域,既 只有当前文件内可以访问。
-
<原创文章 转载请注明出处 http://blog.youkuaiyun.com/meiwm 谢谢>
出处:
http://blog.youkuaiyun.com/meiwm
本文为原创,本文版权归作者所有。欢迎转载,但请务必保留此段声明,且在文章页面明显位置给出原文连接,谢谢合作。
-