C++的字符集

  • ASCII码字符集是计算机中的常用字符集。它包括英文字母及阿拉伯数字等128个字符,存储一个ASCII码占用一个字节单元。
  • 由于汉字处理的需要,又出现了汉字国标码等对应于不同语言的字符集。国标码的存储占用两个字节单元。
  • 为了对各类字符进行统一编码,Unicode字符集应运而生。它包括了世界上多种语言的基本字符,共有65536个字符。 ASCII码字符集国标码字符集都是它的子集。Unicode字符集对所有字符进行统一的双字节编码。

C++语言使用下列基本字符来构成词法单位:

26个小写字母 abcdefghijklmnopqrstuvwxyz
26个大写字母 ABCDEFGHIJKLMNOPQRSTUVWXYZ
10个阿拉伯数字 0 1 2 3 4 5 6 7 8 9
其他符号  + - * / = , . _ : ; ? \ " ' ~ | ! # % & () [] {} ^ < > 空格

C++关 键 字

关键字(keyword)又称保留字,是系统定义的具有特定含义的英文单词,不能另作它用。C++区分大小写,关键字全部由小写字母组成。标准C++(ISO14882)定义了74个关键字,具体的C++编译器还会做一些增删。

常用关键字及分类见下表:

数据类型说明符与修饰符 bool、char、wchar_t、class、const、double、enum、float、int、long、short、signed、struct、union、unsigned、void、volatile
存储类型说明符 auto、extern、inline、register、static
访问说明符 friend、private、protected、public
其它说明符 asm、operator、template、this、typedef、virtual
语句与标号 break、case、catch、continue、default、do、else、for、goto、if、return、switch、throw、try、while
运算符及逻辑值 delete、false、new、sizeof、true

VC++中还有一些专用的关键字,它们都以双下划线开头:
_ _asm、_ _based、_ _cdecl、_ _emit、_ _export、_ _far、_ _fastcall、
_ _fortran、_ _huge、_ _interrupt、_ _loadds、_multipile_inheritance、
_ _near、_ _pascal、_ _saveregs、_ _segment、_ _signal_inheritance、
_ _self、_ _stdcall、_ _virtual、_ _inheritance

除以上之外的一些关键字本书不作介绍,可查阅相关手册。

C++标识符

标识符(Identifier,ID)是程序员定义的英文单词,用来给变量、常量、数据类型、函数等命名。合法标识符由字母或下划线开始,由字母、数字、下划线组成,其有效长度为1-31个字符,长度超过31个字符者只识别前31个字符,VC++标识符长度为1-247个字符。

建议使用有一定含义的英文单词或拼音序列作标识符,以提高可读性;另外,尽量不用下划线或双下划线打头,以免与系统定义的关键字冲突。

例如:判断下面哪些是合法的标识符(非 标红 部分之外均为合法的标示符)

94Salary  $amount f3.5 Num_of_Student
Salary 94 amount MyFile void
Salary94      

标点符号

c++中的标点符号包括 #、 (、 )、 {、 }、 ,、 :、 ;、 " 、 '等。

标点符号的作用:

    • 有一定的语法意义。例如字符和字符串常量分别用 ' ' 和 " "引起来。
    • 对语法符号起分隔作用。例如 ;等。

C++之C++的词法单位的更多相关文章

  1. Compiler Theory(编译原理)、词法/语法/AST/中间代码优化在Webshell检测上的应用

    catalog . 引论 . 构建一个编译器的相关科学 . 程序设计语言基础 . 一个简单的语法制导翻译器 . 简单表达式的翻译器(源代码示例) . 词法分析 . 生成中间代码 . 词法分析器的实现 ...

  2. 快学Scala-第九章 文件和正则表达式

    知识点: 1.读取文件中的所有行,可以调用scala.io.Source对象的getLines方法: import scala.io.Source val source = Source.from(& ...

  3. Scala学习(九)练习

    文件正则表达式&练习 1. 编写一小段Scala代码,将某个文件中的行倒转顺序,将最后一行作为第一行,依此类推 程序代码: import scala.io.Source import java ...

  4. Oracle+PL+SQL从入门到精通.丁士锋.清华大学出版社.2012

    \t第1篇 pl/sql开发入门第1章 oracle 11g数据库系统1.1 关系型数据库系统介绍1.1.1 什么是关系型数据模型1.1.2 数据库系统范式1.1.3 关系型数据库管理系统1.1.4 ...

  5. Oracle_PL/SQL(1) 匿名块

    1. PL/SQL 简介PL/SQL是一种比较复杂的程序设计语言, 用于从各种环境中访问Oracle数据库.为什么使用PL/SQL?Orade是一种关系型数据库, 用来访问关系型数据库的语言是 “结构 ...

  6. 编译原理--05 用C++手撕PL/0

    前言 目录 01 文法和语言.词法分析复习 02 自顶向下.自底向上的LR分析复习 03 语法制导翻译和中间代码生成复习 04 符号表.运行时存储组织和代码优化复习 05 用C++手撕PL/0 在之前 ...

  7. ECMAScript6词法

    ES6简介 ECMAScript 6.0(简称 ES6)是 JavaScript 语言的下一代标准,它于2015 年 6 月正式发布.ECMAScript 和 JavaScript 的关系是,前者是后 ...

  8. 【笔记】javascript权威指南-第二章-词法结构

    词法结构 //本书是指:javascript权威指南    //以下内容摘记时间为:2013.7.28   字符集 UTF-8和UTF-16的区别?Unicode和UTF是什么关系?Unicode转义 ...

  9. 用Java写编译器(1)- 词法和语法分析

    词法和语法分析器构建 ANTLR简介 ANTLR全称ANother Tool for Languate Recognition,是基于LL(*)算法实现的语法分析器生成器和词法分析器生成器,由旧金山大 ...

随机推荐

  1. PHP实现大转盘抽奖算法

    流程: 1.拼装奖项数组,2.计算概率,3.返回中奖情况 代码如下:中奖概率 ' v ' 可以在后台设置,传到此方法中,注意传整数 function get_gift(){ //拼装奖项数组 // 奖 ...

  2. element-ui Pagination组件源码分析整理笔记(七)

    element-ui源码的版本是2.4.9 pagination.js import Pager from './pager.vue'; import ElSelect from 'element-u ...

  3. JavaSE——打印流

    打印流: 类PrintStream: PrintStream 为其他输出流添加了功能,使它们能够方便地打印各种数据值表示形式.它还提供其他两项功能.与其他输出流不同,PrintStream 永远不会抛 ...

  4. AutoCompleteTextView 自定义提示样式

    项目中用到AutoCompleteTextView  自动提示功能,如果用自带的ArrayAdapter就一种样式,非常丑,而且每一项提示文字过多的话不会自动换行. 所以自己自定义了一个适配器. 效果 ...

  5. Hive 锁 lock

    Hive + zookeeper 可以支持锁功能 锁有两种:共享锁.独占锁,Hive开启并发功能的时候自动开启锁功能 1)查询操作使用共享锁,共享锁是可以多重.并发使用的 2)修改表操作使用独占锁,它 ...

  6. oracle instr函数(oracle 用instr 来代替 like)

    oracle instr函数 对于instr函数,我们经常这样使用:从一个字符串中查找指定子串的位置.例如: SQL> select instr('Oracle','or') position ...

  7. Google Play内购测试

    Google Play内购测试 最近项目做海外版本,接入Google wallet支付后,测试验证比较繁琐,故记录一下. Google wallet支付方式接入完成后,需要按照如下步骤设置,才可以进行 ...

  8. LeetCode题解之N-ary Tree Level Order Traversal

    1.题目描述 2.问题分析 利用先进先出队列解决问题. 3.代码 vector<vector<int>> levelOrder(Node* root) { vector< ...

  9. 【转】Java学习---HashMap和HashSet的内部工作机制

    [原文]https://www.toutiao.com/i6593863882484220430/ HashMap和HashSet的内部工作机制 HashMap 和 HashSet 内部是如何工作的? ...

  10. PowerShell “execution of scripts is disabled on this system.”

    Set-ExecutionPolicy RemoteSigned