C/C++的关键字(八股)持续更新....

目录

C关键字

控制流程

类型

数据化结构

类型限定词

存储类

精简解释C语言关键字

C++关键字

控制访问

继承和多态

异常处理

模板编程

类型信息

其他

精简解释C++关键字


C关键字

控制流程

'if', 'else', 'switch',‘case', 'default', 'while', 'do', 'for','goto', 'continue', 'break', 'return'

类型

'int', 'char', 'float', 'double', 'void' , 'short', 'long', 'signed', 'unsigned' 

数据化结构

'struct', 'union', 'enum'

类型限定词

’const‘,‘volatile’

存储类

'extern', 'static', 'auto', 'register'

精简解释C语言关键字

  1. auto - 建议编译器自动推断变量的存储类型
  2. break - 立即退出最近的循环或者switch语句
  3. case - 定义switch语句中的一个标签
  4. char - 定义字符类型的变量 ( 一个字节)
  5. const - 定义一个常量值,不能被修改
  6. continue - 跳过当前循环内的剩余部分,直接开始下一个循环
  7. default - 定义switch语句中的默认分支
  8. do - 循环语句,至少执行一次
  9. double - 定义双精度浮点类型的变量
  10. else - if语句的备选分支
  11. enum - 定义一个枚举类型
  12. extern - 表示变量或函数是在其他文件中定义的(可被省略)
  13. float - 定义单精度浮点类型的变量
  14. for - 循环语句,可设定初始化、条件和迭代表达式
  15. goto - 跳转到程序的另一个位置
  16. if - 条件语句
  17. int - 整型变量
  18. long - 长整型变量
  19. register - 建议编译器将变量存储在寄存器中
  20. return - 从函数返回一个值
  21. short - 定义一个短整型变量(两个字节)
  22. signed - 指定变量为有符号类型
  23. sizeof - 返回数据类或者变量的大小
  24. static - 制定静态存储持久性
  25. struct - 定义一个结构体
  26. switch - 用于多路分支选择
  27. typedef - 为类型定义一个新的名字
  28. union - 定义一个共用体,,其中的成员共享内存
  29. unsigned - 指定变量为无符号类型
  30. void - 指定没有返回值或无类型
  31. volatile - 声明的变量必须从内存中取出值,不需要优化
  32. while - 循环语句,条件满足时重复执行

C++关键字

c++包含了所有C语言的关键字,并增加了一下关键字, 不常见以标红, 后续会解析

控制访问

'private', 'public', 'protected'

继承和多态

'class','virtual', 'friend', 'this', 'new', 'delete',‘override', 'final'

异常处理

'try', 'catch', 'throw','noexcept'

模板编程

'template', 'typename', 'class', 'namespace'

类型信息

'typeid', 'static_cast','dynamic_cast','reinterpret_cast'

其他

'operator', 'explicit','inline', 'nullptr', 'constexpr', 'decltpe', 'using', 'noexcept'

精简解释C++关键字

  1. alignas - 指定变量和类型的对齐要求
  2. alignof - 返回类型的对其要求
  3. asm - 嵌入汇编代码
  4. auto - 自动类推导
  5. bool - 布尔类型
  6. catch - 捕获并处理异常
  7.  char16_t - 16位字符类型
  8.  char32_t - 32位字符类型
  9. class - 定义类
  10. const - 定义不可修改的变量
  11. constexpr - 定义编译时变量表达式
  12. const_cast -去除或添加const 属性
  13. continue - 跳到循环的下一次迭代
  14. decltype - 推导表达式的类型
  15. delete - 删除动态分配的内存或者禁用特殊成员函数
  16. dynamic_cast - 安全地将对象转换为更具体的类型
  17. explicit - 禁止隐式类型转换
  18. export - 导出模版
  19. extern - 变量或者函数是其他地方定义的
  20. friend - 允许其他类或者函数访问私有的和保护成员
  21. inline - 建议编译器内联函数
  22. mutable - 允许在const成员函数中修改
  23. namespace - 定义命名空间
  24. new - 动态分配内存
  25. noexcept - 指明函数不会抛出异常
  26. nullptr - 空指针常量
  27. operator - 重载操作符
  28. private - 类的私有成员
  29. protected - 类的保护成员
  30. public - 类的公开成员
  31. register 0 建议编译器将变量存储在寄存器中
  32. reinterpre_cast - 进行低级别的重新解释类型转换
  33. static_assert - 编译时断言
  34. static_cast - 强制类型转换,比较安全
  35. struct- 结构体类型(public)
  36. template - 定义模版
  37. this - 指向对象自身的指针
  38. thread_local - 声明线程局部存储的变量
  39. throw 抛出异常
  40. try - 尝试执行可抛出异常的代码块
  41. typedef - 定义类型别名
  42. typeid - 获取对象类型信息
  43. typename - 指明后面的标识符是类型
  44. union - 联合体,多个成员共享同一块内存
  45. using - 引入命名空间的成员或定义类型别名
  46. virtual - 声明虚函数或基类

关键字的详细解剖

const

const 能修饰 变量、 指针、 引用、 成员函数。 

修饰变量: 说明该变量不能被修改;

修饰指针: 分为常量指针(pointer to const)指针指向的数据不能被修改,指针本身可以被修改指向另一个地址,和指针常量(常量指针,const pointer) 指针本身的值不能被修改(它指向的地址),但它所指向的数据可以被修改,简单的记忆方式, *在const后面 代表这个指针是有个常量指针, * 在const前面这就是一个指针常量, 两个都加const,代表这是一个常量指针常量;

修饰引用:指向的时候常量的引用( Reference to 'const' ), 避免了拷贝,同时避免了函数对于变量的值的更改;

修饰成员函数: 说明该成员函数内不能修改成员函数;

extern

在C语言中, 'extern' 用于声明一个全局变量或者函数,其实际定义在其他的文件红, 这使得不同的源文件中可以访问或者修改一个全局变量,或者调用同一个函数

C++中保留了C的’extern‘用法 , 还添加了一些其他的用法,'extern "c"', 用于指定在c++代码中使用c风格来链接。辅助C++调用C库函数。

Volatile

在C和C++中, ’Volatile'关键字是一个类型修饰符, 用于告诉编译器,被修饰的变量可以在程序控制之外被意外改变,就是说‘Volatile’修饰的变量的值可能在任何时候被更改,编译器不要对这些变量进行优化(例如,缓存它们的值或者移除看起来无用的读取);

被volatile修饰的语句不会直接使用上一个语句对应的变量的寄存器内容,而是重新从内存中读取,同时不会同时发生优化。

static

'static' 能修饰全局变量、局部变量、函数、类成员, 只能被定义一次

修饰局部变量: 局部变量是存在栈区的, 如果用static修饰的局部变量会被存在静态区,在整个程序结束的时候会被释放,static能延长变量的寿命。

修饰全局变量:static对全局变量进行了修饰,改变了作用域,只有这个文件下能看到这个变量

修饰函数 : 静态函数的作用域,限制了函数只能在文件内被访问

修饰类成员:修饰成员变量和成员函数, 修饰成员变量,表示该变量为类以及所有的对象所有,而且不需要生成对象就可以访问该成员, 修饰函数, 表示这个函数属于这个类但并不属于任何特定的独享,同时static函数内不能访问非静态成员

explicit

explicit 修饰构造函数时,可以防止隐式转换和复制初始化
explicit 修饰转换函数时,可以防止隐式转换,但按语境转换除外

  • 26
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值