当前位置: 首页 > news >正文

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

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多路分支选择
caseswitch 分支标签
defaultswitch 默认分支
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_tUTF-16 字符类型C++11
char32_tUTF-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_SIZEuser@name, price$包含非法字符 @$
2. 首字符不能是数字value1, _9items1stPlace, 2024_year以数字开头
3. 不能是C++关键字myClass, newDataint, 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),易引发命名冲突。

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

相关文章:

  • Doris catalog操作
  • 国标28181卡顿问题现场诊断报告
  • gbase8s之MyBatis批量update问题
  • WPF--Application.Current.Dispatcher.BeginInvoke
  • 人工智能之数学基础:如何将二次型转换为标准型?
  • QMainWindow、QDialog 和 QWidget区别
  • 一文读懂:晶振不同等级的差异及对应最佳应用场景
  • leetcode 2616. 最小化数对的最大差值 中等
  • 软考 系统架构设计师系列知识点之杂项集萃(88)
  • springboot+vue大文件断点续传
  • 前端JavaScript面试题(2)
  • Promise(async、await)
  • 非本地地址调用摄像头需要https
  • Coze扣子 - AI生成数字人口播视频
  • 多环境开发配置,Spring boot
  • 【leetcode】101. 对称二叉树
  • Mysql 忘记密码后如何修改
  • 长春光博会 | 麒麟信安:构建工业数字化安全基座,赋能智能制造转型升级
  • 零基础学前端-传统前端开发(第四期-JS基础-运算)
  • sqlserver存储过程中入参使用JSON
  • 南京做网站费用/网站营销与推广
  • 苏州设置网站建设/百度广告联盟收益
  • 中国人做的比较好的shopify网站/营销效果分析怎么写
  • 专注湛江地区网站开发定制建设/网络营销做得比较好的企业
  • 大凤号 网站建设/网站推广优化排名教程
  • 给孩子做的饭网站/西安seo推广公司