# 【知识精讲】中文和英文字符
## Part1
细心的同学可能会注意到,输入法工具条上,有一个月牙形的标志[![](http://res.jisuanke.com/img/upload/20151218/4cd145e08f92c38941e1e21bb630cb45c31d996a.png)](http://res.jisuanke.com/img/upload/20151218/4cd145e08f92c38941e1e21bb630cb45c31d996a.png),这个标志有的时候会给我们带来一些意想不到的麻烦……
传统上,在英语或者其他拉丁字母语言使用的计算机系统中,每一个字母或者符号都使用一个字节的空间来存储——而对于方块字系统,比如中文、日文或者韩文,因为文字数量太大,通常使用两个字节来储存。
在使用固定宽度文字的地方,比如各种编程工具或者计蒜客的在线代码框,我们输入的字母和英文标点符号都使用一个字节的空间来存储,并占一个空格的宽度。这些占用一个空格宽度的字符被称为半角字符。而汉字或者中文标点则占用大于一个空格的宽度,被称为全角字符。
## Part2
对于输入法来说,有些字符,比如英文字母或者阿拉伯数字,虽然是半角,但你可以点击我们上面看到的那个月牙形标志,或者按键盘上的 Shift + Space 键,强制其按照全角字符输入。如下图所示——请注意第一行的半角数字与最后一行的全角数字之间的区别。
| 半角字符 | 0123456789 |
| --- | --- |
| 全角字符 | 0123456789 |
此外,对于同一个标点符号,在中文和英文状态下输入得到的结果也是不同的:如果键盘上的某个符号,在中文中恰好有对应的标点符号的话,那么输入法在中文输入状态下就会将其转化为中文标点。仔细观察可以看出,中文字符通常要比对应的英文字符宽一些。
| 标点名称 | 英文标点 | 中文标点 |
| --- | --- | --- |
| 逗号 | , | , |
| 分号 | ; | ; |
| 小括号 | () | () |
| 中括号 | \[\] | 【】 |
| 单引号 | ' ' | ‘ ’ |
| 双引号 | " " | “ ” |
| 冒号 | : | : |
| 感叹号 | ! | ! |
| 问号 | ? | ? |
## Part3
这个功能对于文字工作来说可以带来一定的方便,但是对于编程来说却容易给我们带来不必要的麻烦——一般情况下,除了注释或者表示字符串的特定位置之外,编程过程中是不允许出现任何全角字符的,否则程序会报错。
如果你在后面的代码课中遇到程序报错,而你自己确认代码中没有中文标点或逻辑错误,可以检查一下是不是有些容易混淆的字符搞错了。容易混淆的主要就是这样两对组合:数字 0 和字母 O,数字 1 和字母 l。
- 教材介绍
- 《编程初学入门常识》
- 什么是程序语言
- 【知识精讲】编程与编程语言
- 【选择测试】编程语言分类
- 【知识精讲】高级语言分类
- 【选择测试】编译与解释
- 【选择测试】程序员笑话-Java
- 熟悉键盘上用于编程的键位
- 【知识精讲】认识你的键盘
- 【知识精讲】中文和英文字符
- 【匹配测试】识别中英文符号
- 【选择测试】中英文符号的影响
- 【伴随编程】不要使用中文引号
- 【伴随编程】不要使用中文分号
- 【伴随编程】正确地输入符号
- 【选择测试】找出程序中的错误
- 初始工程师思维
- 【知识精讲】二进制思想
- 【选择测试】程序员笑话-凑整
- 【知识精讲】闭合的逻辑
- 【选择测试】程序员笑话-条件
- 程序员职业与生活
- 【知识精讲】程序员的发展方向
- 【知识精讲】程序员的装备
- 【知识精讲】程序员的健康
- 【选择测试】做一名健康的程序员
- 《C++程序设计》
- 前言
- 【知识精讲】编程与计算机科学
- 【知识精讲】编程与软件工程
- 【知识精讲】如何学习编程
- 你好C++
- 【知识精讲】你好,C++
- 【知识精讲】C++程序是如何开发的
- 【知识精讲】成为一名Power User
- 【伴随编程】让我们一起说你好
- 【知识精讲】你的第一个C++语言程序
- 【伴随命令】编译、运行你的程序
- 【伴随编程】将变量流式输出
- 【选择测试】变量的作用域
- 【知识精讲】变量与数据类型
- 【匹配测试】C++语言的入门概念
- 【知识精讲】在程序中学会换行
- 【选择测试】正确地换行
- 简单数学运算
- 【知识精讲】重新认识基本运算
- 【选择测试】运算符的理解
- 【伴随编程】做一下简单的运算
- 【伴随编程】a 的 n 次方
- 【知识精讲】数学函数
- 【伴随编程】让C++语言变成计算器
- 【伴随编程】计算球的体积
- 【匹配测试】数学世界知多少
- 【知识精讲】在程序中添加注释
- 【选择测试】正确地写注释
- 从伴随输入到变量地址
- 【伴随编程】 一个数字复读机器
- 【选择测试】理解标准输入输出
- 【伴随编程】一个加法计算器
- 【程序设计】A+B+C问题
- 【伴随编程】简单的I/O格式控制
- 【知识精讲】地址与取地址符
- 【伴随编程】看看我们的地址
- 习题一:面积与周长
- 【程序设计】矩形面积与周长
- 【程序设计】三角形面积与周长
- 【程序设计】圆形面积与周长
- 程序中的是与非
- 【知识精讲】是非的表示与关系运算
- 【伴随编程】验一验关系运算式
- 【选择测试】关系运算式求值
- 【知识精讲】如果的意义
- 【伴随编程】分段函数求值
- 【知识精讲】如果之后的如果
- 【伴随编程】五则运算器
- 【选择测试】分支的嵌套
- 【伴随编程】问号表达式
- 【知识精讲】是非之间的逻辑组合
- 【伴随编程】判断闰年
- 【程序设计】日期合法性
- 【知识精讲】多路顺序结构
- 【知识精讲】在程序中学会缩进
- 【选择测试】正确的缩进
- C++程序中的苦力
- 【知识精讲】使用循环结构
- 【选择测试】对比两种循环
- 【伴随编程】使用while循环
- 【填空测试】理解循环结构
- 【知识精讲】自减和自增运算符
- 【伴随编程】使用自增运算符
- 【知识精讲】for循环
- 【选择测试】for循环的使用
- 【程序设计】一大波好玩儿的程序
- 《代码能力快速提升》
- 《基础数据结构》
- 《搜索入门》
- 《动态规划基础》
- 《数论和基础数学》
- 《图和数基础》