C++ 学习与 CLion 使用:(四)常量和变量,包括字面常量和符号常量

上一篇 下一篇
标识符和关键字

常量和变量

C++ 将带小数的实数叫做 "实型" 。

符号常量建议全部大写,变量建议大小写组合或纯小写

1)常量

常量:其值在程序执行过程中不会改变的量,包括字面常量符号常量

①字面常量(字面量)

被书写到代码内的常量称之为字面常量,简称字面量。

包括:

  • 整形字面常量:整数(数值型);

    • 默认是 int 型,如果超出了 int 范围,会自动分配范围更大的类型。
      最小原则:int > unsigned int > long > unsigned long > long long > unsigned long long
    • 可以通过代码显示指定类型。
  • 实型字面常量:小数(数值型);

    • 默认是 double 型,如果超出了 double 范围,会自动分配到 unsigned double 型。
    • 可以通过代码显示指定类型。
  • 字符型 字面常量:单个字符('');

  • 字符串 字面常量:任意个字符("")。

显示指定类型:

后缀(大小写均可) 含义
U 无符号数
L 整形 long 型、浮点数 long double 型
UL unsigned long 型
ULL unsigned long long 型
F float 型
D double 型(编译器会警告,不用管)

样例:

c++ 复制代码
#include <iostream>
#include "windows.h"

using namespace std;

int main()
{
    SetConsoleOutputCP(CP_UTF8);
    21;
    1.23;
    'c';
    "hello world";

    21LL;
    1.23F;

    cout << "21和21LL的字节数分别是:" << sizeof(21) << "、" << sizeof(21LL) << endl;

    return 0;
}

结果:

c++ 复制代码
21和21LL的字节数分别是:4、8

②符号常量

使用标识符去定义的常量,称之为符号常量(简单来说,给常量取一个名字,就是符号常量)。

定义方法:

  • const 关键字:
    • 需要分号 ; 结尾。
  • #define 宏定义:#define 标识符(名称) 常量值
    • 不需要分号 ; 结尾。
    • 定义在代码头部。
    • 标识符要符合字母、数字、下划线组合的要求且数字不可开头。
    • 字母建议全部大写。

示例:

c++ 复制代码
const double PI = 3.14159;  // 类型安全的符号常量
c++ 复制代码
#include <iostream>
#include "windows.h"
using namespace std; 

#define A 1  //宏定义
#define B 2  //宏定义

int main()
{
    SetConsoleOutputCP(CP_UTF8);
    cout << "A=" << A << "并且B=" << B << endl;
    return 0; 
}

输出:

c++ 复制代码
A=1并且B=2

2)变量

变量的声明:变量类型 变量名;包括:

  • int 整形;
  • float 实型;
  • char 字符型;
  • string 字符串型。

变量的赋值:变量名=变量值(等号右边结果赋给等号左边的变量)。

示例:

c++ 复制代码
#include <iostream>
#include "windows.h"
using namespace std;

int main()
{
    SetConsoleOutputCP(CP_UTF8);
    int age = 17, weight = 60;  //多变量同时定义并赋值, 使用逗号隔开
    float height;
    string gender;

    height = 1.6;
    gender = "小明";

    cout << gender << "今年" << age << ", 体重" << weight << "kg, 身高" << height << "m" << endl;
    return 0;
}

结果:

c++ 复制代码
小明今年17, 体重60kg, 身高1.6m

相关推荐
九久。17 分钟前
手动实现std:iterator/std:string/std::vector/std::list/std::map/std:set
c++·stl
小羊羊Python19 分钟前
Sound Maze - 基于 SFML+C++14 的音效迷宫开源游戏 | MIT 协议
c++·游戏·开源
txinyu的博客28 分钟前
HTTP服务实现用户级窗口限流
开发语言·c++·分布式·网络协议·http
代码村新手28 分钟前
C++-类和对象(上)
开发语言·c++
全栈小精灵37 分钟前
Winform入门
开发语言·机器学习·c#
心静财富之门37 分钟前
退出 for 循环,break和continue 语句
开发语言·python
ha204289419438 分钟前
Linux操作系统学习记录之----自定义协议(网络计算器)
linux·网络·学习
txinyu的博客39 分钟前
map和unordered_map的性能对比
开发语言·数据结构·c++·算法·哈希算法·散列表
振华说技能1 小时前
SolidWorks学习大纲-从基础到全面精通,请看详情
学习