《第一章-初入江湖》 C++修炼生涯笔记(基础篇)C++初识

发布于:2025-06-14 ⋅ 阅读:(20) ⋅ 点赞:(0)

1.C++初识

1.1    创建一个C++程序

#inlude<iostrem>
using namespace td;

int main()
{
    cout << "Hello word 666" << endl;
    system("pause");
    return 0 ;
}

运行结果:

Hello word 666

1.2    注释

作用:在代码中添加一些注释,方便自己和其他程序员阅读代码

两种格式:

单行注释: //这是单行注释

多行注释: /* 这是多行注释 */

1.3    变量

作用:给一段指定的内存空间起名,方便操作内存

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

例如:    int            a       = 666;

1.4    常量

作用:

用于记录程序中不可以修改的数据

C++定义常量的两种方式

1.4.1    #define    宏常量 常量值

例如:#define day 7

通常定义在文件的上方,表示一个常量.

1.4.2    const 数据类型 常量名 = 常量值

例如:const  int  day  = 7;

通常定义在变量前加关键字const,修饰该变量为常量,不可修改.

1.5    关键字

作用:关键字是C++预先保留单词(标识符)

在定义变量或者常量的时候,不要用关键字

以下是C++关键字的分类表格(基于C++17标准,共73个):

以下是C++关键字的分类表格(基于C++17标准,共73个):

基本类型与类型修饰符

关键字 描述
int 整数类型
char 字符类型
float 单精度浮点数
double 双精度浮点数
void 无类型/空类型
bool 布尔类型 (true/false)
short 短整数修饰符
long 长整数修饰符
signed 有符号修饰符
unsigned 无符号修饰符
wchar_t 宽字符类型 (C++11起为关键字)

流程控制

关键字 描述
if 条件判断
else 条件分支
switch 多路分支选择
case switch 分支标签
default switch 默认分支
for 循环控制
while 循环控制
do 循环体 (与 while 联用)
break 跳出循环/开关
continue 跳至循环末尾
goto 无条件跳转
return 函数返回值

类与面向对象

关键字 描述
class 定义类
struct 定义结构体(默认公有继承)
union 定义联合体
enum 定义枚举
public 公有访问权限
private 私有访问权限
protected 保护访问权限
friend 友元声明
virtual 虚函数/虚继承
override 显式重写虚函数 (C++11)
final 禁止重写/继承 (C++11)
this 当前对象指针
operator 运算符重载

内存与存储类

关键字 描述
new 动态内存分配
delete 动态内存释放
auto 自动类型推导 (C++11)
static 静态存储期/类成员
extern 外部链接声明
const 常量修饰符
volatile 易变性修饰符
mutable 允许常量对象修改的成员
register 建议寄存器存储 (C++17弃用)
constexpr 编译期常量 (C++11)

模板与泛型

关键字 描述
template 定义模板
typename 声明模板类型参数
using 类型别名/命名空间引入 (C++11)

异常处理

关键字 描述
try 异常捕获块
catch 异常处理块
throw 抛出异常
noexcept 声明不抛出异常 (C++11)

其他关键操作符

关键字 描述
sizeof 获取类型/对象大小
alignof 获取类型对齐 (C++11)
typeid 获取类型信息
dynamic_cast 运行时类型转换
static_cast 编译时类型转换
const_cast 移除 const/volatile
reinterpret_cast 低级类型转换
asm 内联汇编 (实现定义)

C++11/14/17 新增关键字

关键字 描述 版本
nullptr 空指针字面量 C++11
decltype 推导表达式类型 C++11
thread_local 线程局部存储 C++11
char16_t UTF-16 字符类型 C++11
char32_t UTF-32 字符类型 C++11

注意

  1. 部分关键字(如 and, or, not 等)是操作符的替代表示(如 &&, ||, !),实际编码中较少使用。
  2. C++20 新增关键字(如 concept, requires, co_await 等)未包含在本表中。
  3. 总计 73个关键字(不含 C++20)。

1.6    标识符的命名规则

作用:C++规定给标识符(变量、常量)命名时,有一套自己的规则

在C++中,标识符用于命名变量、函数、类、对象等程序实体。其命名规则如下:


核心规则

规则 合法示例 非法示例 原因
1. 只能包含
字母(a-z, A-Z)、数字(0-9)、下划线(_
age, _count, MAX_SIZE user@name, price$ 包含非法字符 @$
2. 首字符不能是数字 value1, _9items 1stPlace, 2024_year 以数字开头
3. 不能是C++关键字 myClass, newData int, class, return 与关键字冲突
4. 区分大小写 Sumsum
IDid
- 大小写敏感

附加限制与建议

规则 说明
长度限制 理论上无限长,但编译器通常支持至少1024字符(足够使用)
保留标识符 避免:
- 双下划线开头(__var
- 下划线 + 大写字母(_MAX
(编译器/标准库保留)
可读性建议 - 使用有意义的名称(如 studentAge 而非 s
- 驼峰命名法(getUserName)或蛇形命名法(user_id
- 避免单个字符(除循环变量如 i, j

合法与非法标识符示例

类型 示例 是否合法 说明
合法 playerHealth 字母组合
_debug_mode 下划线开头
isValid 驼峰命名
PI_VALUE 常量常用全大写
非法 float 关键字
3d_model 以数字开头
user-name 包含连字符 -
namespace 关键字

特殊注意事项

  1. Unicode支持
    C++11起允许在标识符中使用Unicode字符(如 résumé, 変数),但需确保编译器支持且谨慎使用。
  2. 作用域冲突
    同一作用域内标识符必须唯一(如局部变量不能与函数同名)。
  3. 全局命名空间污染
    避免过短的全局标识符(如 x, data),易引发命名冲突。

最佳实践:遵循团队编码规范,优先使用描述性名称,提高代码可读性和可维护性。