Char常量(字符)根据其ASCII值存储在计算机中。
补码是数据的二进制表示形式。整数分为正数、负数和零。在计算机设计的早期,就确定了字节的最高位代表符号,其余位代表数值,以表示原始的代码签名数据。然而,原始代码表示中出现了表示“正0”和“负0”的现象。因此,提出了完成码的概念,并最终使用完成码来存储数据。
规则:
正数的原码与其补码相同。
负数的补码=一个的补码+1,
一个的补码意味着原码的符号位保持不变,其余位取反。
例如:以一字节整数为例
-1的原码为:10000001
-1的补码为:11111110
-1的补码是:11111111
字符数据以ASCII码存储在内存中。
这是一个字节。所有数据类型都以二进制代码形式存储在内存中,其中包含0和1代码。这个原则不会改变。
在C语言中,char类型数据就是将字符常量放入字符变量中。它不是把字符本身放入内存单元,而是放入字符对应的ASCII码。放入存储单元。
编码时,1个汉字需要2个字节来存储。在UTF-8编码中,存储一个英文字母字符需要1个字节,存储一个汉字需要3到4个字节。UTF-16编码中,存储1个英文字母字符或1个汉字需要2个字节。在UTF-32编码中,世界上任何字符的存储都需要4个字节。
ASCII码的分布
1、0~31、127(共33个)分别是控制字符或通讯专用字符(其余为可显示字符),如控制字符:LF(换行)、CR(回车)、FF(换页)、DEL(删除)、BS(退格)、BEL(铃)等等。
通信用特殊字符:SOH(文本头)、EOT(文本结束)、ACK(确认)等;ASCII值8、9、10和13被转换为退格键、制表符、换行符和Enter字符。它们没有特定的图形显示,但根据不同的应用,会对文本显示产生不同的效果[1]。
2.32到126(共95个)为字符(32为空格),其中48到57为0到9的十个阿拉伯数字。
3.数字65到90是26个大写英文字母,数字97到122是26个小写英文字母,其余的是一些标点符号、算术符号等。
[10]表示字符数组维度a的大小。
表示数组a在内存中占用10(字符)的空间。
另外,作为一个字符数组,在[10]中定义,实际上只使用了9个空格来存储字符,最后一个空格被保留用于存储字符串结束符号'\0'。
高级信息:数组:
在C语言中,数组是构造数据类型。一个数组可以分解为多个数组元素,这些元素可以是基本数据类型,也可以是构造类型。因此,根据数组元素的类型,数组可以分为数值数组、字符数组、指针数组、结构体数组等多种类别。
关于变长数组(VLA)问题:原来的C89标准不允许出现变长数组,但是在C99标准中,增加了VLA支持,但是支持的构建。不存在。很多处理器,而且由于栈溢出的安全问题,很少有人敢用这个变长数组,所以在C11标准中将其定义为可选的实现函数。
如果您有使用其他语言编程的经验,您应该熟悉数组的概念。使用数组,您可以引用一系列具有相同名称的变量并以数字方式(索引)标识它们。
在许多情况下,使用数组可以缩短和简化程序,因为可以使用索引值设计循环来有效地处理多种情况。数组有上限和下限,数组元素在上下限之间连续。由于VisualBasic为每个索引值分配空间,因此请勿声明太大的数组。
这里的表是程序中声明的变量数组。它们与控件数组不同,控件数组是在设计时通过设置控件的Index属性来指定的。变量数组总是连续的;与控制数组不同,数组元素不能从数组的中间加载或卸载。
数组中的所有元素都具有相同的数据类型(在C、C++、Java和Pascal中都是如此。但并非所有涉及数组的地方都是如此。例如,VisualFoxpro中的数组是不是(没有这样的要求
当然,当数据类型为Variant时,每个元素可以包含不同的数据类型(对象、字符串、值等)任何基本数据类型的数组都可以被声明,包括用户定义类型和对象变量
参考来源:-数组
上一篇:联想v110可以加内存吗
下一篇:char在内存中储存的是