大家好,我是网域小星球。
C++ 兼容 C 语言全部语法,同时扩展了面向对象、引用、泛型、内存管理等高级特性,也是 C++ 开发岗面试的核心考察内容。本篇从零过渡 C++ 基础,聚焦语法差异、高频考点、笔试题,所有代码 VS2022 直接运行。
目录
[一、C++ 头文件与基础兼容](#一、C++ 头文件与基础兼容)
[1. 标准头文件](#1. 标准头文件)
[2. 完全兼容 C](#2. 完全兼容 C)
[二、命名空间 namespace(必考)](#二、命名空间 namespace(必考))
[1. 作用](#1. 作用)
[2. 基础语法](#2. 基础语法)
[三、C++ 输入输出 cin /cout](#三、C++ 输入输出 cin /cout)
[1. 输出 cout](#1. 输出 cout)
[四、引用 & (C++ 核心高频考点)](#四、引用 & (C++ 核心高频考点))
[1. 引用概念](#1. 引用概念)
[3. 引用三大规则(面试必背)](#3. 引用三大规则(面试必背))
[4. 函数引用传参(最高频)](#4. 函数引用传参(最高频))
[五、C++ 变量增强定义](#五、C++ 变量增强定义)
[六、const 强化用法](#六、const 强化用法)
一、C++ 头文件与基础兼容
1. 标准头文件
C++ 推荐使用无后缀头文件:
cpp
#include <iostream> // 标准输入输出
不再优先使用 .h 老式头文件。
2. 完全兼容 C
C 语言的语法、结构体、指针、数组、文件操作,全部可以直接在 C++ 运行。
二、命名空间 namespace(必考)
1. 作用
解决全局命名冲突,不同库、相同变量名互不干扰。
2. 基础语法
cpp
namespace std
{
// 系统标准库内容
}
- 三种使用方式
cpp
// 方式1:全程限定
std::cout << "hello";
// 方式2:全局展开(常用)
using namespace std;
// 方式3:单独引入
using std::cout;
完整示例
cpp
#include <iostream>
using namespace std;
int main()
{
cout << "C++ 命名空间" << endl;
return 0;
}
三、C++ 输入输出 cin /cout
替代 C 语言 printf / scanf,自动识别类型,无需格式符。
1. 输出 cout
cpp
cout << 整数 << 字符串 << 变量 << endl;
- 输入 cin
cpp
int a;
cin >> a;
示例代码
cpp
#include <iostream>
using namespace std;
int main()
{
int a;
double b;
cout << "请输入整数:";
cin >> a;
cout << "请输入小数:";
cin >> b;
cout << "a = " << a << ", b = " << b << endl;
return 0;
}
面试考点:C 格式化输入输出不安全,C++ cin/cout 类型更安全,自动推导。
四、引用 & (C++ 核心高频考点)
1. 引用概念
引用 = 变量别名,引用和原变量共用同一块内存。
语法:
cpp
数据类型 &引用名 = 原变量;
- 基础用法
cpp
int a = 10;
int &b = a; // b 是 a 的别名
b = 20;
// a 同步变成 20
3. 引用三大规则(面试必背)
- 引用必须初始化,不能单独定义;
- 引用不可更改指向,一生绑定一个变量;
- 没有空引用,不存在野引用。
4. 函数引用传参(最高频)
代替指针,减少拷贝、修改实参:
cpp
void swap(int &x, int &y)
{
int temp = x;
x = y;
y = temp;
}
面试常问:引用和指针的区别?下篇专门精讲。
五、C++ 变量增强定义
C 语言要求变量必须写在函数开头;C++ 允许随时随地定义变量:
cpp
for(int i = 0; i < 10; i++)
{
// 合法
}
六、const 强化用法
C++ 中 const 常量编译期确定,用法更严格:
cpp
const int N = 100;
可以当作常量直接使用,安全性高于 C 语言宏定义。
七、本章总结
-
namespace解决命名冲突,std 是标准库命名空间; -
cin / cout替代格式化 IO,类型安全; -
引用是变量别名,无内存开销,常用于函数传参;
-
C++ 支持任意位置定义变量,语法更灵活;
-
const 优化常量定义,替代部分宏。
下期预告
C++ 从 0 入门(二)|引用与指针区别、内联函数、函数重载(面试超高频)