跳至正文
View Categories

1 min read

主要内容 #

1. 变量和常量 #

int dashima; // 这就是一个变量。
dashima = 5; // 变量可以赋值

变量的值,是可以被改变的。
在 C++ 中,有一些量,它们的值是不变化的。

举例:

// 数值常量
12
-5
3.14159
3.15f
true

2. 变量的作用域 #

每个变量都有作用域,变量的作用域决定了变量定义的生效范围,就如同法律条文一样,一般不同国家的法律条文仅作用于本国,变量仅生效于其作用域。函数内定义的变量的作用域为该函数内,全局变量的作用域为全局。不同函数内定义的变量被视为独立实体,当该函数执行完毕便释放变量所占用的内存空间,即便不同函数内定义的变量名称相同也不会相互影响。
全局变量定义示例:

#include < iostream >
using namespace std;
int a=20;
void Print()
{
    cout<<a<<endl;    
}
int main()
{
   Print();
    cout<<a<<endl;
}

局部变量定义示例:

#include < iostream >
using namespace std;
int a=20;
void Print()
{
    int b=30;
    cout<<b<<endl;  
    cout<<a<<endl;    
}
int main()
{
    Print();
    cout<<a;
    //cout<<b;
}

3. 定义“符号常量” #

除此以外,我们还可以定义“符号常量”

// 符号常量
const int dashima = 5; // 在这里可以理解为初始化。
const int dashi(500);
const double b(10);
const float  c=10; 
const bool   d=true; 
const char   e='A'; 
// 不可以赋值
dashima = 80;          // 编译器会报错。常量不允许被修改。
  • 注意关键字:const
  • 4. 使用场景 #

    常量的重点在于“不变”。所以,一般我们经常将以下的量设置为常量。

    示例程序:

    #include < iostream >
    using namespace std;
    const double PI = 3.1415926;
    
    int main()
    {
        cout 
            << "圆的面积为:"
            << 5*5*PI;
    
        return 0;
    }

    5. #define #

    除了使用 const 来定义常量以外,C++ 语法也支持使用 #define 来定义常量。

    但是!

    这是比较古老的写法。现代程序开发标准中,大多数情况下,我们都不推荐继续使用 #define
    不过,了解这种写法,也是非常必要的。

    示例程序:

    #include < iostream >
    using namespace std;
    #define PI 3.1415926;    // 使用 #define 定义常量
    
    int main()
    {
        cout 
            << "圆的面积为:"
            << 5*5*PI;
    
        return 0;
    }

    #define 一般称为“宏定义”,写在 main 以外。
    什么是“宏”呢?

    “宏”是计算机科学中创造的概念。表示:一系列人为定义的指令。

    它的作用其实就是“相同词替换”,怎么理解呢?
    比如上述的示例程序中,程序员写的代码是这样的:

    #define PI 3.1415926;
    cout << "圆的面积为:" << 5*5*PI;

    在提交代码给编译器之前,计算机会对代码做一下修改:

    #define PI 3.1415926;
    cout << "圆的面积为:" << 5*5*3.1415926;   // 所以有代码中的 PI ,都被替换成了 3.1415926。然后才提交给编译器。

    习题 #

    课后练习