C++系统学习日记 · 第03天|关键字+全量数据类型+数据输入

1 阅读7分钟

📖 学习信息

学习课程:黑马C++零基础教程

本日学习:C++常用关键字、全量基础数据类型(int、实型、字符型等)、转义字符、字符串类型、布尔类型、数据输入(cin)

学习目标:掌握常用关键字的用法、区分各类数据类型的适用场景,学会用cin实现数据输入,能独立写出包含输入输出的简单程序

一、C++常用关键字(基础必记)

关键字是C++预先定义好、具有特殊含义的单词,不能用作变量名、常量名、函数名等,编译器会自动识别并执行对应功能。

基础阶段重点掌握以下常用关键字(后续逐步扩展),牢记:关键字全部小写,不可自定义修改

1. 核心常用关键字(必背)

  • int:定义整型变量/常量(最常用),比如 int a = 10;
  • float:定义单精度浮点型变量/常量,用于存储小数
  • double:定义双精度浮点型变量/常量,精度高于float,更常用
  • char:定义字符型变量/常量,用于存储单个字符
  • bool:定义布尔类型变量,用于表示“真”或“假”
  • const:定义常量,使变量的值不可修改(Day2已学,重点回顾)
  • using:用于使用命名空间,比如 using namespace std;
  • return:用于函数返回值,比如main函数中的 return 0;
  • void:表示“无类型”,后续用于无返回值函数、无参数函数

2. 关键字使用禁忌

❌ 禁止用关键字作为变量名、常量名,否则编译器直接报错:

// 错误示例:int是关键字,不能用作变量名
int int = 20; 

// 错误示例:const是关键字,不能用作常量名
#define const 100;

✅ 正确做法:避开所有关键字,命名见名知意,比如用 int num = 20;const int MAX = 100;

二、全量基础数据类型(详解+对比)

数据类型用于规定变量/常量存储的数据种类和占用内存大小,Day2已初步了解4种,今日补充完整,结合sizeof运算符(计算内存大小),彻底吃透。

1. 整型(int)—— 存储整数

✅ 用途:存储正整数、负整数、0(比如年龄、人数、分数整数部分)

✅ 占用内存:通常4个字节(不同编译器可能有差异,用sizeof验证)

✅ 示例+sizeof用法:

#include <iostream>
using namespace std;

int main()
{
    int age = 20;
    int score = 98;
    // sizeof(数据类型/变量):计算占用的字节数
    cout << "int类型占用内存:" << sizeof(int) << "字节" << endl;
    cout << "age变量占用内存:" << sizeof(age) << "字节" << endl;
    return 0;
}

运行结果:int类型占用内存:4字节(固定输出,新手无需纠结差异)

2. 实型(浮点型)—— 存储小数

实型分为两种,重点掌握double(更常用),float仅作了解:

  • float:单精度浮点型,占用4字节,精度较低(约6-7位有效数字)
  • double:双精度浮点型,占用8字节,精度较高(约15-16位有效数字),优先使用

✅ 示例:

#include <iostream>
using namespace std;

int main()
{
    float pi1 = 3.1415926;  // 精度不足,会丢失部分数据
    double pi2 = 3.141592653589793;  // 精度足够,完整存储
    
    cout << "float pi1 = " << pi1 << endl;  // 输出约3.141593(自动保留6位有效数字)
    cout << "double pi2 = " << pi2 << endl; // 输出完整精度
    cout << "float占用内存:" << sizeof(float) << "字节" << endl;
    cout << "double占用内存:" << sizeof(double) << "字节" << endl;
    return 0;
}

3. 字符型(char)—— 存储单个字符

✅ 用途:存储单个字母、数字、符号(比如性别、符号标记)

✅ 语法:用单引号 ' ' 包裹单个字符,不可用双引号

✅ 占用内存:1字节

✅ 示例:

#include <iostream>
using namespace std;

int main()
{
    char gender = '男';  // 正确:单个字符,单引号包裹
    char symbol = '+';
    char numChar = '0';  // 注意:'0'是字符,不是数字0
    
    // 错误示例:char c = "A";  // 双引号用于字符串,单个字符用单引号
    cout << "gender = " << gender << endl;
    cout << "char类型占用内存:" << sizeof(char) << "字节" << endl;
    return 0;
}

4. 转义字符 —— 特殊字符(重点)

转义字符以 `` 开头,用于表示无法直接输入的特殊字符(比如换行、制表符),基础阶段必记3个:

转义字符含义示例
\n换行(最常用)cout << "第一行\n第二行";
\t制表符(类似按Tab键,对齐输出)cout << "姓名\t年龄";
\输出一个反斜杠 ``cout << "路径:C:\test";

✅ 实操示例:

#include <iostream>
using namespace std;

int main()
{
    cout << "姓名\t年龄\t分数" << endl;  // \t 制表符对齐
    cout << "张三\t20\t98" << endl;
    cout << "李四\t19\t95" << endl;
    cout << "路径:C:\Program Files\C++" << endl;  // \ 输出反斜杠
    return 0;
}

5. 字符串类型 —— 存储多个字符

✅ 用途:存储一串字符(比如姓名、地址、句子),C++中有两种常用写法:

(1)C语言兼容写法(字符数组)

语法:char 字符串名[] = "字符串内容";(双引号包裹)

(2)C++推荐写法(string类型)

语法:string 字符串名 = "字符串内容";,需额外包含头文件 #include <string>

✅ 示例:

#include <iostream>
#include <string>  // 使用string类型必须包含该头文件
using namespace std;

int main()
{
    // 1. 字符数组写法(C语言兼容)
    char name1[] = "张三";
    // 2. string写法(C++推荐,更简洁)
    string name2 = "李四";
    
    cout << "name1 = " << name1 << endl;
    cout << "name2 = " << name2 << endl;
    return 0;
}

重点提醒:string类型必须包含 #include <string>,否则编译器报错。

6. 布尔类型(bool)—— 表示真/假

✅ 用途:用于判断条件(比如“是否及格”“是否登录成功”),只有两个取值:

  • true:表示“真”,等价于数字1
  • false:表示“假”,等价于数字0

✅ 占用内存:1字节

✅ 示例:

#include <iostream>
using namespace std;

int main()
{
    bool isPass = true;  // 及格:真
    bool isFail = false; // 不及格:假
    
    cout << "isPass = " << isPass << endl;  // 输出1
    cout << "isFail = " << isFail << endl;  // 输出0
    cout << "bool类型占用内存:" << sizeof(bool) << "字节" << endl;
    return 0;
}

三、数据输入 —— cin(与cout对应)

Day2学习了 cout(输出数据到控制台),今日学习 cin(从控制台输入数据到变量),两者配合使用,实现“输入+输出”的完整程序。

1. cin基础语法(必掌握)

✅ 格式:cin >> 变量名;>> 是输入流向运算符,从键盘流向变量)

✅ 核心:输入的数据类型,必须与变量的数据类型一致,否则会出错。

2. 实操示例(单个输入+多个输入)

#include <iostream>
#include <string>
using namespace std;

int main()
{
    // 1. 单个输入
    int age;
    cout << "请输入你的年龄:";
    cin >> age;  // 从键盘输入一个整数,赋值给age
    cout << "你输入的年龄是:" << age << endl;
    
    // 2. 多个输入(用空格/回车分隔)
    string name;
    double score;
    cout << "请输入你的姓名和分数(用空格分隔):";
    cin >> name >> score;  // 依次输入字符串和小数,赋值给对应变量
    cout << "姓名:" << name << ",分数:" << score << endl;
    
    return 0;
}

运行说明:输入时,多个数据用空格回车分隔,cin会自动匹配对应变量的类型。

3. 输入注意事项

  • ❌ 禁止输入与变量类型不匹配的数据,比如:给int变量输入小数,会导致输入失败,变量值异常。
  • ✅ 输入字符串时,cin遇到空格、回车会停止读取,比如输入“张三 李四”,只会读取“张三”。
  • ✅ 无需手动添加头文件,cin和cout一样,包含 #include <iostream> 即可使用。

四、常见错误与避坑点

  • ❌ 错误1:使用string类型忘记包含 #include <string>,导致编译器报错。
  • ❌ 错误2:字符型变量用双引号包裹,比如 char c = "A";,正确应为 char c = 'A';
  • ❌ 错误3:cin输入类型不匹配,比如 int num; cin >> num; 时输入“3.14”,导致num值异常。
  • ❌ 错误4:混淆转义字符,比如想换行用 /n(错误),正确应为 \n(反斜杠)。
  • ❌ 错误5:用sizeof时,语法错误,比如 sizeof int(错误),正确应为 sizeof(int)sizeof(变量名)

五、今日学习总结

  1. 关键字:掌握int、double、char、bool、const等常用关键字,不可用作变量/常量名;

  2. 数据类型:

    1. 整型int(4字节)、实型float(4字节)/double(8字节);
    2. 字符型char(1字节,单引号包裹)、转义字符(\n、\t、\);
    3. 字符串类型(char数组、string类型,string需包含头文件);
    4. 布尔类型bool(1字节,true=1,false=0)。
  3. sizeof运算符:用于计算数据类型/变量占用的字节数,语法 sizeof(数据类型/变量)

  4. 数据输入:用cin实现,语法cin >> 变量名,注意输入类型与变量类型一致;

  5. 能独立写出“输入+输出”的简单程序,规避常见语法错误。

✍️ 下节预告

下一篇将学习 C++ 运算符(算术运算符、赋值运算符、比较运算符等),继续跟着黑马教程稳步推进,夯实零基础基础,为后续写逻辑判断、循环代码打牢根基。