c++考点之关键字和标识符



如题:

答案:

1、详见关键字,说的很明白了,mycase不是关键字。
2、详见标识符规则,只能以字母和下划线打头,所以C不对。

C++关键字与标识符到底有哪些规律呢?

关键字:

每一个有特殊意义的C + +词汇表的标识符,不能将他们用于其他用途
其实是一个深入了解的过程,常用的一看就知道,不常用需要注意总结,记忆。

数据类型,

auto,bool,char,char16_t,char32_t,class,double,enum,false,float,int,long,nullptr,short,signed,struct,template,true,union,unsigned,void,wchar_t。

存储类别说明符

auto,extern,register,static,thread_local

程序控制,

asm,break,case,continue,default,do,else,for,goto,if,rturn,switch,while。

类型限定

const,mutable,volatile。

类型转换

const_cast,dynastic_cast,reinterpret_cast,static_cast,explicit

异常处理

catch,try,throw,noexcept。

内存管理相关

new,delete,alignas,alignof,sizeof。

类相关

friend,namespace,operator,private,protected,public,this,using,virtual, class,explicit,template

编译优化相关

constexpr,inline,static_assert。

其他

export,dealtype,typedef,typeid,typename。
标粗的为重复的,只作参考吧。

重点了解下,不知道的和相对重点的:

class:

1)声明类;声明有作用域枚举类型(C++11 起);2)在模板声明中,class 可用于引入类型模板形参与模板模板形参;3)若作用域中存在具有与某个类类型的名字相同的名字的函数或变量,则 class 可附于类名之前以消歧义,这时被用作类型说明符

template:

声明模板类型

wchar_t:

宽字符类型。要求大到足以表示任何受支持的字符编码。

mutable:

可出现于任何类型说明符(包括声明文法的声明说明符序列)中,以指定被声明对象或被命名类型的常量性constness)或易变性(volatility)

dynastic_cast:

类型转换运算符,沿继承层级向上、向下及侧向,安全地转换到其他类的指针和引用。
###reinterpret_cast:  
类型转换运算符。通过重新解释底层位模式在类型间转换。

static_cast:

类型转换运算符。用隐式和用户定义转换的组合在类型间转换

explicit:

  1. 指定构造函数或转换函数(C++11 起)或推导指引(C++17起)为显式,即它不能用于隐式转换和复制初始化。2) explicit说明符可以与常量表达式一同使用。当且仅当该常量表达式求值为true时函数为显式(C++20 起)。explicit说明符只可出现于在类定义之内的构造函数或转换函数(C++11 起)的声明说明符序列中。

noexcept:

1)noexcept运算符,进行编译时检查,若表达式声明为不抛出任何异常则返回true。2)noexcept说明符,指定函数是否抛出异常。

alignof:

用于内存对齐相关

operator:

为用户定义类型的操作数重载C++运算符。

constexpr:

constexpr 说明符声明可以在编译时求得函数或变量的值。然后这些变量和函数(若给定了合适的函数实参)可用于编译时生成常量表达式。用于对象或非静态成员函数 (C++14 前)声明的constexpr说明符蕴含const。用于函数声明的 constexpr说明符或static 成员变量 (C++17 起)蕴含inline。若函数或函数模板的任何声明拥有constexpr说明符,则每个声明必须都含有该说明符。

inline:

声明内联类型

static_assert:

声明编译时检查的断言

export:

用于引用文件外模板声明(C++11 前)。不使用并保留该关键词(C++11 起)(C++20 前)。标记一个声明、一组声明或另一模块为当前模块所导出(C++20 起)。

dealtype:

检查实体的声明类型,或表达式的类型和值类别。对于变量,指定要从其初始化器自动推导出其类型。对于函数,指定要从其return语句推导出其返回类型。(C++14 起)对于非类型模板形参,指定要从实参推导出其类型。(C++17 起)

typeid:

查询类型的信息。用于必须知晓多态对象的动态类型的场合以及静态类型鉴别。题所涉及

typename:

在模板声明中,typename可用作class的代替品,以声明类型模板形参和模板形参(C++17 起)。在模板的声明或定义内,typename可用于声明某个待决的有限定名类型。题所涉及
还要注意保留标识符。C++语言已经指定了它们的用途或保留它们的使用权。如:
C++语言保留了库头文件中使用的宏名。如果程序中包含了某个头文件,则不应该将该头文件中定义的宏名用作其他目的。
C++语言保留了以两个下划线或下划线和大写字母打头的名称,还将以单个下划线打头的名称保留用作全局变量。
C++语言保留了在库头文件中被声明为外部链接性的名称。如函数特征标(名称和参数列表)。
C++使用具有特殊意义的标识符来避免新增关键字。这些标识符不是关键字,但用于实现语言功能。
编译器根据上下文来判断他们是常规标识符还是用于实现语言功能。例如,virtual,delete,final,override等。

标识符定义规则:

标识符不能被一个关键字。关键词被保留。
标识符只能由字母、数字和下划线。这意味着这个名字不能包含符号(除下划线)还是空白。
标识符必须开始以字母或下划线。它不能以数字开头,。
C + +区分大小写字母。

关于命名变量:

变量名及函数是以小写字母打头,多个单词,从第二个单词起,首字母大写
类或接口,每个单词首字母大写。与《java基础之面向对象技术要点(含无法在包路径下创建普通文件夹的问题、标识符命名规则)》中命名规则一致。
命名空间命名:全部小写
文件命名:文件名字要全部小写,中间用_相连,后缀名为.cc .cpp和.h
常量和枚举命名:声明为 constexpr 或 const 的变量, 或在程序运行期间其值始终保持不变的, 命名时以 “k” 开头, 大小写混合

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

guangod

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值