![](https://csdnimg.cn/release/download_crawler_static/87176186/bg3.jpg)
那么字符是怎么显示的呢
先来看一下英文字母及标点符号的表示。由于内存只能表示0、1,我们不得不采用一些办法
才能存储字符。我们通常采用字符集(Character Set)的方式,即在计算机中存储时也要使用
二进制数来表示,但具体用哪些二进制数字表示哪个符号,当然每个人都可以约定自己的一
套(这就叫字符集,注意和编码不同)。
比如十进制的65 代表 A
那么字符码就有26个小写字母、26个大写字母、10个数字、32个符号、33个句柄和一个空格,
另外加上一些扩展字符,总共是256个字符码。同整数一样,我们也需要对字符所占的宽度
进行约束(要不同样无法辨别),我们可以根据公式
Y=Log2 X Y 即为所占宽度,所以256字符需要每个字符占1个字节的宽度,这也就是为什么
一个字符占据一个字节的原因。
比如 char a=’3’;
char b=’A’;
这也就是我们常说的 ASCII 字符集(Single-Byte Character Set,简称 SBCS),类似的 SBCS 还
有阿拉伯语 ISO8859-6 等等。
至于简体中文、繁体中文、日文和韩文,显然用1个字节存储是不够的,所以采用了双字节
字符集的形式(Double-Byte Character Set,简称 DBCS),属于 DBCS 的有简体中文的 GB2312,
繁体中文的 BIG5。
标准化协会还另外采用了2个字节的宽度来表示所有的字符的字符集形式即 Unicode(宽字
节字符集),旨在把全世界的文字用一种字符集(Character Set)表示。目前已经定义了包含英
文(一个英文字母也占两个字节)、中文、日文、阿拉伯字母等大约35000个代码点,而实际
上2个字节的宽度可以表示65536个代码点。
变量和指针
我们了解了数据类型,来看一看变量的声明和使用,以整形为例
int n;
则会在内存中的某一个位置选取4个字节存放该整形,然后计算机记录下该内存的地址(那
么内存的地址如何表示?),由于声明并没有赋值,所以只是分配了内存空间并没有赋初值。
这种方式分配空间和动态分配空间(C 里用 malloc,C++用 new)是不同的,静态方式会在该
变量 n 超过其变量作用范围时自动释放(回收),而动态方式需要我们用(C 利用 free,C++用
delete)回收。
评论0
最新资源