C++基础

C++零基础入门超全基础知识点(保姆级详解 适合新手收藏)

大家好!本文给大家整理了最全面、最通俗易懂的C++基础核心知识点,全程无废话、零基础可看懂,搭配实战代码示例、易错点总结,非常适合新手学习、期末复习、博客收藏、入门夯实基础。

本文涵盖:C++简介、环境搭建、基础语法、数据类型、变量常量、运算符、流程控制、数组、函数、指针、引用、结构体、面向对象基础等全套入门核心内容,干货满满,建议收藏!

一、C++ 语言简介

1.1 什么是C++?

C++ 是一门静态类型、编译型、跨平台、面向对象的高级编程语言,在C语言的基础上扩展而来,保留了C语言高效、贴近底层的特性,同时新增了面向对象、泛型编程、STL标准库等强大功能。

1.2 C++ 核心特点

  • 兼容性强:完全兼容C语言代码,可直接复用C语言项目

  • 执行效率高:编译执行,运行速度快,常用于后端、游戏、嵌入式、算法开发

  • 支持多编程范式:支持面向过程、面向对象、泛型编程

  • 功能强大:拥有完善的STL标准库,极大提升开发效率

1.3 应用场景

游戏开发、后端服务、嵌入式开发、操作系统、算法竞赛、图像处理、高性能服务器、人工智能底层框架等。

二、C++ 开发环境与第一个程序

2.1 常用开发工具

  • Windows:Dev-C++、CodeBlocks、Visual Studio 2022

  • 跨平台:VS Code(搭配MinGW编译器)、CLion

  • Linux/Mac:GCC/G++ 编译器

2.2 第一个C++程序(Hello World)

#include <iostream>  // 引入输入输出流头文件
using namespace std; // 使用std标准命名空间

// 主函数:程序入口,有且仅有一个
int main()
{
    // 控制台输出语句
    cout << "Hello C++!零基础入门!" << endl;
    
    return 0; // 程序正常结束,返回0
}

2.3 代码逐行详解

  • #include <iostream>:预处理指令,引入输入输出库,想要使用 coutcin 必须引入

  • using namespace std;:std是标准库命名空间,这句代码可以让我们不用每次都写 std::cout

  • int main():主函数,程序的唯一入口,程序从这里开始执行

  • cout <<:标准输出,向控制台打印内容

  • endl:换行并刷新缓冲区,等价于换行符 \n

  • return 0:表示程序正常退出,非0表示程序异常

三、C++ 基础语法规则

3.1 基本规范

  1. C++ 语句以分号 ; 结尾,缺一不可

  2. 代码区分大小写,coutCOUT 完全不同

  3. 空格、换行不影响程序执行,可自由排版

  4. 大括号 {} 包裹代码块,成对出现

3.2 注释(程序备注,不执行)

// 单行注释:仅当前行生效

/*
多行注释
可以换行
用于批量备注代码
*/

四、数据类型(核心基础)

C++ 是静态类型语言,定义变量必须指定数据类型,不同类型占用内存、存储范围不同。

4.1 基本数据类型

数据类型 占用字节 作用 示例
char 1 存储单个字符/字母 char a = 'A';
int 4 整型(整数),最常用 int num = 10;
short 2 短整型(小范围整数) short s = 5;
long 4/8 长整型(大范围整数) long l = 100000;
float 4 单精度浮点数(小数) float f = 3.14f;
double 8 双精度浮点数(高精度小数,常用) double d = 3.14159;
bool 1 布尔类型,只有真假 bool flag = true;

4.2 类型补充说明

  • bool类型true 代表真(1),false 代表假(0)

  • 字符类型:字符用单引号包裹,字符串用双引号包裹

  • float后缀:定义float变量建议加 f,否则默认是double类型

4.3 数据类型转换

1、自动转换(隐式转换)

低精度自动向高精度转换,不会丢失数据:int → doublechar → int

int a = 10;
double b = a; // int自动转为double,b=10.0

2、强制转换(显式转换)

高精度转低精度,可能丢失数据,语法:(目标类型)变量

double d = 3.99;
int num = (int)d; // 强制转换,直接舍去小数,num=3

五、变量与常量

5.1 变量

变量是可以修改的内存空间,用于存储数据,先定义,后使用

定义语法

数据类型 变量名 = 初始值;

命名规则

  • 只能由字母、数字、下划线组成

  • 不能以数字开头

  • 不能使用C++关键字(int、cout、if等)

  • 区分大小写,建议见名知意

5.2 常量

常量是不可修改的数据,定义后无法重新赋值。

1、const 修饰常量(常用)

const double PI = 3.14159;
// PI = 3.15; 报错,常量不可修改

2、宏常量 #define

#define MAX 100 // 全局常量,预处理阶段替换

六、输入输出(cin / cout)

6.1 标准输出 cout

用于打印数据,支持连续输出多个内容

cout << "姓名:" << "张三" << "年龄:" << 18 << endl;

6.2 标准输入 cin

用于接收用户控制台输入,自动忽略空格、换行

int age;
cout << "请输入年龄:";
cin >> age; // 接收用户输入的整数

七、运算符大全

7.1 算术运算符

用于数值计算:+ - * / % ++ --

  • /:整数相除结果为整数,小数相除结果为小数

  • %:取模(取余数),只能用于整数

  • ++ 自增、-- 自减:变量自身+1/-1

int a = 5, b = 2;
cout << a / b;  // 2(整数除法)
cout << a % b;  // 1(余数)

7.2 赋值运算符

= += -= *= /= %=

int a = 10;
a += 5; // 等价于 a = a + 5,a=15

7.3 关系运算符(返回bool值)

> < >= <= == !=

结果:成立为true(1),不成立为false(0),相等判断必须用==,=是赋值

7.4 逻辑运算符

  • && 逻辑与:全真才真,一假则假

  • || 逻辑或:一真则真,全假才假

  • ! 逻辑非:取反,真变假、假变真

八、流程控制语句

8.1 分支结构(判断)

1、if-else 语句

int score;
cin >> score;
if(score >= 60)
{
    cout << "及格" << endl;
}
else
{
    cout << "不及格" << endl;
}

2、多分支 if-else if-else

if(score >= 90) cout << "优秀";
else if(score >= 70) cout << "良好";
else if(score >= 60) cout << "及格";
else cout << "不及格";

3、switch 语句(固定值判断)

int day;
cin >> day;
switch(day)
{
    case 1: cout << "周一"; break;
    case 2: cout << "周二"; break;
    default: cout << "输入错误"; break;
}

注意:每个case必须加break,否则会穿透执行

8.2 循环结构

1、for 循环(最常用,已知循环次数)

// 打印1-10
for(int i = 1; i <= 10; i++)
{
    cout << i << " ";
}

2、while 循环(未知次数,先判断后执行)

int i = 1;
while(i <= 10)
{
    cout << i << " ";
    i++;
}

3、do-while 循环(先执行后判断,至少执行一次)

8.3 循环跳转语句

  • break:跳出当前循环/switch,终止循环

  • continue:跳过本次循环,直接执行下一次循环

九、数组

数组是相同数据类型的一组有序集合,连续存储在内存中,下标从0开始。

9.1 一维数组

// 定义+初始化
int arr[5] = {1,2,3,4,5};
// 访问数组元素
cout << arr[0]; // 输出第一个元素1

9.2 二维数组

类似矩阵,常用于表格、坐标数据存储

int arr[2][3] = {{1,2,3},{4,5,6}};
cout << arr[1][0]; // 输出4

十、函数

函数是封装好的代码块,实现代码复用、简化代码结构。

10.1 函数语法

返回值类型 函数名(参数列表)
{
    // 函数体
    return 返回值;
}

10.2 函数示例

// 定义求和函数
int add(int a, int b)
{
    return a + b;
}

int main()
{
    int res = add(3,5); // 调用函数
    cout << res; // 输出8
    return 0;
}

10.3 函数参数与返回值

  • 无返回值:使用 void 修饰

  • 无参数:括号为空即可

  • 值传递:形参修改不影响实参

十一、指针(C++核心难点)

指针是存储内存地址的变量,C++高效操作内存的核心。

11.1 指针定义与使用

int a = 10;
int *p = &a; // p存储变量a的地址

cout << p;  // 输出a的内存地址
cout << *p; // 解指针,输出a的值10

11.2 核心总结

  • & 取地址符:获取变量内存地址

  • * 解指针符:通过地址访问变量值

  • 指针变量类型必须和指向的变量类型一致

十二、引用(C++专属特性)

引用是变量的别名,和原变量共用同一块内存,修改引用就是修改原变量,比指针更安全简洁。

12.1 引用语法

int a = 10;
int &b = a; // b是a的别名
b = 20;
cout << a; // a被修改为20

12.2 引用特点

  • 引用必须初始化,不能空引用

  • 初始化后不能更换引用对象

  • 常用于函数参数传递,避免拷贝,提升效率

十三、结构体(自定义数据类型)

结构体可以将多个不同类型的数据封装在一起,用于描述一个事物的完整属性(如学生、员工)。

13.1 结构体定义与使用

// 定义学生结构体
struct Student
{
    string name;
    int age;
    double score;
};

int main()
{
    Student s = {"张三", 18, 95.5};
    cout << s.name << " " << s.age;
    return 0;
}

十四、C++面向对象基础(核心进阶)

C++ 区别于C语言的核心就是面向对象编程(OOP),四大特性:封装、继承、多态、抽象。

14.1 类与对象

类是模板,对象是类的实例,类封装属性(变量)和行为(函数)。

class Person
{
public:
    // 属性
    string name;
    int age;
    // 成员函数(行为)
    void show()
    {
        cout << name << " " << age << endl;
    }
};

int main()
{
    Person p; // 创建对象
    p.name = "李四";
    p.age = 20;
    p.show();
    return 0;
}

14.2 访问权限

  • public 公共:类内、类外均可访问

  • private 私有:仅类内可访问(默认权限)

  • protected 保护:类内和子类可访问

十五、新手常见易错点总结

  1. 语句末尾忘记加分号,编译报错

  2. 混淆 = 赋值 和 == 判断相等

  3. 数组下标越界,导致程序崩溃

  4. char用双引号、字符串用单引号,语法错误

  5. switch-case 忘记写break,出现穿透问题

  6. 指针未初始化直接使用,造成野指针报错

  7. 循环中忘记更新变量,导致死循环

十六、总结

本文完整梳理了C++入门全部核心知识点,从基础语法、数据类型、流程控制,到数组、函数、指针、引用、结构体、面向对象基础,覆盖新手入门所有必备内容。

掌握以上内容,就完成了C++零基础入门的全部铺垫,后续可以进阶学习STL标准库、内存管理、继承多态、模板编程等高级知识点。

posted @ 2026-08-06 12:52  *抽象系数天花板*  阅读(1)  评论(0)    收藏  举报