【C++】零基础入门 · 第 2 节:变量、基本数据类型与输入输出

上一节我们写了第一个 C++ 程序,学会了编译和运行。这一节来学习编程中最基础的概念------变量和数据类型,以及怎么从键盘读取用户输入、怎么把结果显示到屏幕上。

1. 变量是什么

变量就是一个「盒子」,用来存放数据。每个盒子有一个名字(变量名)和一个类型(决定能放什么数据)。

在 C++ 里,使用变量之前必须先声明它的类型。这叫「强类型」------你不能把文字塞进一个专门放数字的盒子里。

cpp 复制代码
int age = 20;        // 声明一个整数变量 age,值为 20
double height = 1.75; // 声明一个浮点数变量 height
char grade = 'A';     // 声明一个字符变量 grade
string name = "小明"; // 声明一个字符串变量 name(需要 #include <string>)

变量命名规则:

  • 只能包含字母、数字和下划线 _
  • 不能以数字开头(1age 是错的,age1 是对的)
  • 不能使用 C++ 关键字(比如 int、return、if)
  • 区分大小写(Age 和 age 是两个不同的变量)

2. 基本数据类型

C++ 提供了几种常用的内置数据类型:

2.1 整数类型

cpp 复制代码
int a = 42;          // 最常用的整数类型,通常占 4 字节
long long b = 1e18;  // 超大整数,占 8 字节
short c = 100;       // 短整数,占 2 字节
unsigned int d = 10; // 无符号整数,只能存非负数

int 的范围大约是 -21 亿到 21 亿,日常使用足够了。如果数字特别大,用 long long。

2.2 浮点类型(小数)

cpp 复制代码
float x = 3.14f;     // 单精度,占 4 字节,精度约 6~7 位
double y = 3.14159;  // 双精度,占 8 字节,精度约 15 位

一般用 double 就行,精度更高。float 在需要节省内存的场景(比如图形处理)才用。

2.3 字符类型

cpp 复制代码
char ch = 'A';       // 单个字符,占 1 字节

注意字符用单引号 包裹,字符串用双引号。

2.4 布尔类型

cpp 复制代码
bool isStudent = true;  // 只有两个值:true 或 false
bool isAdult = false;

布尔类型在条件判断中非常常用。

3. 输出:用 cout 打印信息

cout 是 C++ 标准库提供的输出工具,配合 << 运算符把数据显示到屏幕上。

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

int main() {
    int age = 20;
    string name = "小明";
    double score = 95.5;

    // 输出变量
    cout << "姓名:" << name << endl;
    cout << "年龄:" << age << endl;
    cout << "成绩:" << score << endl;

    // endl 表示换行并刷新输出
    // 也可以用 "\n" 来换行
    cout << "Hello\n";

    return 0;
}

编译运行后输出:

复制代码
姓名:小明
年龄:20
成绩:95.5
Hello

<< 可以连续使用,把多个内容拼在一起输出。endl 和 \n 的区别是 endl 会强制刷新缓冲区,一般用 \n 就够了。

4. 输入:用 cin 读取用户数据

cin 配合 >> 运算符,可以从键盘读取用户输入:

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

int main() {
    string name;
    int age;

    cout << "请输入你的姓名:";
    cin >> name;

    cout << "请输入你的年龄:";
    cin >> age;

    cout << "你好," << name << "!你今年 " << age << " 岁。" << endl;

    return 0;
}

运行后程序会等你输入,输入完按回车继续。

注意: cin >> 读字符串时遇到空格会停止。比如输入 Zhang San,name 只会拿到 Zhang。如果需要读取带空格的整行内容,用 getline:

cpp 复制代码
string fullName;
cout << "请输入你的全名:";
getline(cin, fullName);  // 可以读取包含空格的整行

5. 类型转换

有时候需要在不同类型之间转换:

cpp 复制代码
// 隐式转换(自动)
int a = 3;
double b = a;  // int 转 double,b = 3.0

// 显式转换(手动)
double pi = 3.14;
int n = (int)pi;  // n = 3,小数部分被截断

// 更安全的 C++ 风格转换
int m = static_cast<int>(pi);  // 效果一样,更推荐

从 int 转 double 没有精度损失,反过来会丢失小数部分。

6. 一个完整的小例子

写一个简单的「自我介绍」程序,综合运用上面的知识:

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

int main() {
    string name;
    int age;
    double height;
    char grade;

    cout << "=== 自我介绍 ===" << endl;
    cout << "请输入姓名:";
    getline(cin, name);
    cout << "请输入年龄:";
    cin >> age;
    cout << "请输入身高(米):";
    cin >> height;
    cout << "请输入成绩等级(A/B/C/D):";
    cin >> grade;

    cout << "\n--- 你的信息 ---" << endl;
    cout << "姓名:" << name << endl;
    cout << "年龄:" << age << " 岁" << endl;
    cout << "身高:" << height << " 米" << endl;
    cout << "等级:" << grade << endl;

    return 0;
}

7. 常见错误

忘记包含头文件 :用了 string 但没写 #include <string>,编译器会报错。

变量未初始化就使用:

cpp 复制代码
int x;
cout << x;  // 未定义行为,输出一个随机值

养成声明变量时就赋初值的习惯。

类型不匹配:

cpp 复制代码
int a;
cin >> a;
// 用户输入 "hello",cin 会进入错误状态,后续输入全部失效

后面会学到输入验证的方法,初学阶段先确保输入正确的数据类型。

8. 小结

这一节我们学了:

  • 变量是存放数据的「盒子」,使用前要声明类型
  • 常用数据类型:int(整数)、double(小数)、char(字符)、string(字符串)、bool(布尔)
  • cout << 用于输出,cin >> 用于输入
  • getline(cin, str) 可以读取带空格的整行输入

下一节我们将学习条件判断(if / switch),让程序能根据不同情况做出不同的反应。

相关推荐
小羊没烦恼!4 天前
微服务化的基石——持续集成
java·大数据·word·powerpoint·.net
倒头就睡的小比特4 天前
算法竞赛C++常用的STL
c++·算法
weilx12344 天前
C++笔记-文件IO-<fcntl.h>
c++
俊昭喜喜里4 天前
java中的继承和多态的区别
java
小羊没烦恼!4 天前
初探性能优化——2个月到4小时的性能提升
java·开发语言·windows·算法·c#
譕痕4 天前
JSONObject与JSONArray封装数据格式区别
java·json
胡写代码4 天前
别再前后端各写一套表单校验了
java·后端
小鱼能吃糖4 天前
缺陷修复总览 · mall电商项目:5类缺陷,1个病根,4个业务域
java·电商
此时不提桶,更待何时4 天前
01-06-A-JVM排查实战详解
java·jvm
伞伞悦读4 天前
【第38期】Python 模块与包详解:import、from、模块搜索路径、包结构和 __init__
开发语言·python