标识符是什么,C++标识符详解
标识符是一个由程序员定义的名称,代表程序的某些元素。变量名就是标识符的示例。只要不使用任何 C++ 关键字,程序员可以在 C++ 中选择自己的变量名。
C++ 中的关键字构成了该语言的“核心”,它们都有其特定目的。表 1 显示了 C++ 关键字 的完整列表,请注意它们都是小写的:
在给变量命名时,应选择能指示变量用途的名称。例如,有人可能会这样给变量命名:
有些人可能已经注意到变量名称 itemsOrdered 中存在的大小写字母混合的状况。虽然所有 C++ 的关键字都必须用小写字母表示,但在自定义的变量名中还是可以使用大写字母的。
itemsOrdered 中的 O 采用大写的原因是为了提高可读性。通常情况下,“items ordered”是两个单词,但是在变量名中不能有空格,所以两个单词必须组合成一个。当“items”和“ordered”组合在一起时,也就得到了如下变量定义语句:
表 2 列出了若干变量名称,并指出了它们在 C++ 中是合法还是非法。
C++ 中的关键字构成了该语言的“核心”,它们都有其特定目的。表 1 显示了 C++ 关键字 的完整列表,请注意它们都是小写的:
alignas | const | for | private | throw |
---|---|---|---|---|
alignof | constexpr | friend | protected | true |
and | const_cast | goto | public | try |
and_eq | continue | if | register | typedef |
asm | decltype | inline | reinterpret_cast | typeid |
auto | default | int | return | typename |
bitand | delete | long | short | union |
bitor | do | mutable | signed | unsigned |
bool | double | namespace | sizeof | using |
break | dynamic_cast | new | static | virtual |
case | else | noexecpt | static_assert | void |
catch | enum | not | static_cast | volatile |
char | explicit | not_eq | struct | wchar_t |
char16_t | export | nullptr | switch | while |
char32_t | extern | operator | template | xor |
class | false | or | this | xor_eq |
compl | float | or_eq | thread_local |
在给变量命名时,应选择能指示变量用途的名称。例如,有人可能会这样给变量命名:
int x;
但是,像 x 这样的名字对于提示变量的用途其实没有什么帮助。以下是一个更好的例子:int itemsOrdered;
名称 itemsOrdered 可以让任何读取程序的人都会对该变量的用途有所猜测。这种编写代码的方式有助于生成自我解释型的程序,这意味着通过阅读代码就可以了解该程序的内容。因为现实中的程序通常有成千上万行代码,所以代码尽可能地自我解释是非常重要的。有些人可能已经注意到变量名称 itemsOrdered 中存在的大小写字母混合的状况。虽然所有 C++ 的关键字都必须用小写字母表示,但在自定义的变量名中还是可以使用大写字母的。
itemsOrdered 中的 O 采用大写的原因是为了提高可读性。通常情况下,“items ordered”是两个单词,但是在变量名中不能有空格,所以两个单词必须组合成一个。当“items”和“ordered”组合在一起时,也就得到了如下变量定义语句:
int itemsordered;
为了使代码更容易阅读,在命名变量时,将第 2 个单词和任何后续单词的首字母大写,就像 itemsOrdered 这样。当然,这种风格的编写方法并不是强制性的,你完全可以按自己的习惯釆用全部小写、全部大写或组合使用。实际上,有些程序员喜欢使用下画线字符来分隔变量名中的单词,如下所示。int items_ordered;
合法标识符
无论釆用哪一种编写风格,都要保持一致,并使变量名尽可能提示其用途。以下是所有 C++ 标识符必须遵循的一些特定规则。- 第一个字符必须是字母 a 到 z、A 到 Z 或下画线字符(_)中的一个。
- 第一个字符后,可以使用字母 a 到 z 或 A 到 Z、数字 0 到 9 或下画线。
- 大小写字符是不同的。这意味着 ItemsOrdered 与 itemsordered 不一样。
变M名 | 是否合法 |
---|---|
dayOfWeek | 合法 |
3dGraph | 非法。变量名不能以数字开头 |
_employee_num | 合法 |
June1997 | 合法 |
Mixture#3 | 非法。变量名只能使用字母、数字和下画线 |
表 2 列出了若干变量名称,并指出了它们在 C++ 中是合法还是非法。
所有教程
- C语言入门
- C语言编译器
- C语言项目案例
- 数据结构
- C++
- STL
- C++11
- socket
- GCC
- GDB
- Makefile
- OpenCV
- Qt教程
- Unity 3D
- UE4
- 游戏引擎
- Python
- Python并发编程
- TensorFlow
- Django
- NumPy
- Linux
- Shell
- Java教程
- 设计模式
- Java Swing
- Servlet
- JSP教程
- Struts2
- Maven
- Spring
- Spring MVC
- Spring Boot
- Spring Cloud
- Hibernate
- Mybatis
- MySQL教程
- MySQL函数
- NoSQL
- Redis
- MongoDB
- HBase
- Go语言
- C#
- MATLAB
- JavaScript
- Bootstrap
- HTML
- CSS教程
- PHP
- 汇编语言
- TCP/IP
- vi命令
- Android教程
- 区块链
- Docker
- 大数据
- 云计算