C++ 第一阶段 基本语法 - 第一节:变量与数据类型详解

目录

一、变量与数据类型概述

[1.1 什么是变量?](#1.1 什么是变量?)

[1.2 数据类型分类](#1.2 数据类型分类)

二、基本数据类型详解

[2.1 整型(int, short, long)](#2.1 整型(int, short, long))

[2.1.1 常见整型类型](#2.1.1 常见整型类型)

[2.1.2 代码示例](#2.1.2 代码示例)

[2.1.3 注意事项](#2.1.3 注意事项)

[2.2 浮点型(float, double)](#2.2 浮点型(float, double))

[2.2.1 浮点型特点](#2.2.1 浮点型特点)

[2.2.2 代码示例](#2.2.2 代码示例)

[2.2.3 精度问题](#2.2.3 精度问题)

[2.3 字符型(char)](#2.3 字符型(char))

[2.3.1 字符型特性](#2.3.1 字符型特性)

[2.3.2 代码示例](#2.3.2 代码示例)

[2.3.3 常见转义字符](#2.3.3 常见转义字符)

[2.4 布尔型(bool)](#2.4 布尔型(bool))

[2.4.1 布尔型特点](#2.4.1 布尔型特点)

[2.4.2 代码示例](#2.4.2 代码示例)

三、枚举类型(enum)

[3.1 基本枚举定义](#3.1 基本枚举定义)

[3.2 C++11 强类型枚举](#3.2 C++11 强类型枚举)

四、变量命名规则与最佳实践

[4.1 命名规则](#4.1 命名规则)

[4.2 命名风格](#4.2 命名风格)

[4.3 初始化建议](#4.3 初始化建议)

五、总结


一、变量与数据类型概述

1.1 什么是变量?

变量是程序中用于存储数据的容器,每个变量需要指定一个数据类型,以决定:

  • 存储空间大小(内存占用)
  • 数据的取值范围
  • 可执行的操作类型

1.2 数据类型分类

C++ 是静态类型语言,变量类型在声明时确定。基础数据类型包括:

  • 整型(int, short, long)
  • 浮点型(float, double)
  • 字符型(char)
  • 布尔型(bool)
  • 枚举型(enum)

二、基本数据类型详解

2.1 整型(int, short, long)

2.1.1 常见整型类型
类型 占用字节 范围(32位系统)
short 2 -32768 ~ 32767
int 4 -2147483648 ~ 2147483647
long 4 同 int
long long 8 ±9.2e18
2.1.2 代码示例
cpp 复制代码
#include <iostream>
using namespace std;

int main() {
    int age = 25;             // 声明int变量
    short temperature = -5;   // 声明short变量
    long population = 7800000000L; // long变量需加后缀L

    cout << "Age: " << age << endl;
    cout << "Temperature: " << temperature << endl;
    cout << "Population: " << population << endl;

    return 0;
}

输出

cpp 复制代码
Age: 25
Temperature: -5
Population: 7800000000
2.1.3 注意事项
  • 32位系统下 int 通常为 4 字节,64位系统可能不同
  • 使用 LLONG_MAX 等常量查看最大值(需包含 <climits> 头文件)

2.2 浮点型(float, double)

2.2.1 浮点型特点
类型 占用字节 精度 表示范围
float 4 6-7 位有效数字 3.4e-38 ~ 3.4e+38
double 8 15-16 位有效数字 1.7e-308 ~ 1.7e+308
2.2.2 代码示例
cpp 复制代码
#include <iostream>
using namespace std;

int main() {
    float pi = 3.14159f;      // float变量需加后缀f
    double gravity = 9.81;    // double默认类型
    double scientific = 6.022e23; // 科学计数法

    cout << "Pi: " << pi << endl;
    cout << "Gravity: " << gravity << endl;
    cout << "Scientific: " << scientific << endl;

    return 0;
}

输出

cpp 复制代码
Pi: 3.14159
Gravity: 9.81
Scientific: 6.022e+23
2.2.3 精度问题
cpp 复制代码
float a = 0.1f;
float b = 0.2f;
if (a + b == 0.3f) { // 实际不会成立!
    cout << "Equal";
} else {
    cout << "Not equal"; // 输出此行
}

原因:浮点数在计算机中是以二进制存储的,某些十进制小数无法精确表示。


2.3 字符型(char)

2.3.1 字符型特性
  • 占用 1 字节(8 bit)
  • 实际存储的是 ASCII 码值(0~127)
  • 可直接操作字符或其对应的整数值
2.3.2 代码示例
cpp 复制代码
#include <iostream>
using namespace std;

int main() {
    char grade = 'A';         // 字符常量
    char newline = '\n';      // 转义字符
    char ascii_value = 65;    // 直接使用ASCII码

    cout << "Grade: " << grade << endl;
    cout << "ASCII 65: " << ascii_value << endl;
    cout << "Newline: " << newline << "END" << endl;

    return 0;
}

输出

cpp 复制代码
Grade: A
ASCII 65: A
Newline: 
END
2.3.3 常见转义字符
转义字符 含义
\n 换行
\t 制表符
\\ 反斜杠
\" 双引号
\' 单引号

2.4 布尔型(bool)

2.4.1 布尔型特点
  • 占用 1 字节
  • 取值仅能是 truefalse
  • 在条件判断中自动转换:
    • 非零值 → true
    • 零值 → false
2.4.2 代码示例
cpp 复制代码
#include <iostream>
using namespace std;

int main() {
    bool is_raining = true;
    bool has_error = 0; // 0 → false

    if (is_raining) {
        cout << "Bring an umbrella!" << endl;
    }

    if (!has_error) {
        cout << "No error detected." << endl;
    }

    return 0;
}

输出

cpp 复制代码
Bring an umbrella!
No error detected.

三、枚举类型(enum)

3.1 基本枚举定义

cpp 复制代码
#include <iostream>
using namespace std;

int main() {
    enum Color { RED, GREEN, BLUE }; // 自动从0开始编号
    Color my_color = GREEN;

    cout << "RED = " << RED << endl;    // 输出 0
    cout << "GREEN = " << GREEN << endl; // 输出 1
    cout << "BLUE = " << BLUE << endl;  // 输出 2

    return 0;
}

3.2 C++11 强类型枚举

cpp 复制代码
enum class Direction { UP, DOWN, LEFT, RIGHT }; // 不会隐式转换为int
Direction dir = Direction::UP;

// 错误:不能直接比较int和Direction
// if (dir == 0) { ... }

// 正确方式:
if (dir == Direction::UP) {
    cout << "Going up!" << endl;
}

四、变量命名规则与最佳实践

4.1 命名规则

  • 只能使用字母、数字和下划线(_
  • 不能以数字开头
  • 区分大小写(ageAge
  • 不可使用C++关键字(如 int, class

4.2 命名风格

风格 示例 适用场景
驼峰命名法 myVariable 变量名
蛇形命名法 my_variable 常量/宏定义
全大写 MAX_VALUE 全局常量

4.3 初始化建议

cpp 复制代码
// 推荐方式(C++11统一初始化)
int x{5};      // 值初始化
int y{};       // 零初始化
int z{10.5};   // 编译错误(防止隐式窄化)

// 不推荐方式
int a = 5;     // C风格初始化
int b = {5};   // C++11列表初始化

五、总结

数据类型 用途 示例
int 存储整数 int count = 100;
float/double 存储小数 double price = 9.99;
char 存储单个字符 char letter = 'Z';
bool 存储逻辑值 bool flag = true;
enum 定义命名的整数常量集合 enum Status { OK, ERROR };