C++快速入门 (三) 常量, 字面值常量 及作用域

本文介绍了C++中的常量声明方式,包括声明常量、全局常量及其编译时检查。接着讲解了字面值常量的概念。最后详细阐述了作用域的相关知识,如作用域定义、对象作用域判断、嵌套作用域中的同名变量处理以及范围解析运算符的用法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一 常量

(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_TCHARargv [])
{
    {
         int ioz = 100;
        cout << ioz << endl;  //100
        cout << ::ioz << endl;  //10086
    }
}

上例中定义了一个未命名作用域, 其作用和一般作用域相同,在一些代码库中会碰到这种写法,

(5). 文件作用域
在文件的最上层作用域 定义类型时使用 static 关键字声明,该类型 的作用域为文件作用域,既 只有当前文件内可以访问。




-

<原创文章 转载请注明出处 http://blog.youkuaiyun.com/meiwm 谢谢>


作者:meiwm
出处: http://blog.youkuaiyun.com/meiwm
本文为原创,本文版权归作者所有。欢迎转载,但请务必保留此段声明,且在文章页面明显位置给出原文连接,谢谢合作。

-



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值