自问自答1基础数据类型的本质与特点?指针与数组的关系?char * 与char []的区别?16进制的意义?
Posted contradictory-man
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了自问自答1基础数据类型的本质与特点?指针与数组的关系?char * 与char []的区别?16进制的意义?相关的知识,希望对你有一定的参考价值。
位与字节
在计算机中,一个二进制的0或1位一位。8位为1个字节,字节是计算机中常用的度量单位。
位:0或1
字节:00000000 (8个位)
在32位系统中,
int 4字节 32位 范围 -2^31~2^31-1
long 4字节 32位 -2^31~2^31-1
short 2字节 16位 范围 -2^15~2^15-1
char
char 2字节
char是为了专门存储字符而设计的,是另外一种整型。
通常需要char存储表示的就是ASCII码字符集,在键盘输入时,键盘打出字符,字符进入内存后以二进制格式存储进去,读取时再从二进制根据ASCII码表转成字符。
事实上ASCII码中的字符用1个字节就可以表示出来。
在进行运算时,char类型的字符也会自动转成整型,参与运算。(如:‘A’ 会转成65参与运算)
关于中文字符存储
常用的字符编码方式有两种Unicode与UTF-8
Unicode使用4个字节表示字符
UTF-8不定长,通常使用2~4个字节表示字符。
字符串
C语言中并没有专门的字符串类型,通常使用Char * 与char [] ,即字符数组来代表字符串。
使用多个字节编码的汉字通常会被char数组截断。汉字在char数组字符串中通常不是完整存在的。
sizeof是获取所占内存数,与Qt中常用的.length() .size()意义完全不一样
为了区分字符串的界限,通常会在字符数组末尾增加结束符‘