黑马程序员技术交流社区

标题: char类型数据存储问题 [打印本页]

作者: OnTheWay_1314    时间: 2015-12-1 09:53
标题: char类型数据存储问题
sizeof('a')和char ch = 'a';sizeof(ch)这两个占得内存分别是多少?为什么呢?
作者: lujia1010    时间: 2015-12-1 11:02
看编译器吧
作者: paul20150103    时间: 2015-12-1 12:41
sizeof('a')是四字节,char ch = 'a';sizeof(ch)是一字节; sizeof('a') ‘a’存储在计算机里是 以字符存储 占四字节的,   char ch = 'a';sizeof(ch) ch在计算机中存储是以 阿斯科玛值存储 的,整个阿斯科玛表的内容不多,所以计算只分配一字节存储整个表格就够了,     我是这么理解的
作者: junjunzhang    时间: 2015-12-5 09:57
本帖最后由 junjunzhang 于 2015-12-5 10:43 编辑
paul20150103 发表于 2015-12-1 12:41
sizeof('a')是四字节,char ch = 'a';sizeof(ch)是一字节; sizeof('a') ‘a’存储在计算机里是 以字符存储 ...

sizeof('a')字符a在计算机中是以二进制的方式进行存储,首先找到其对应的ascii码值97,相当于一个int类型的数据,因此结果是4
char ch = 'a'的话sizeof(ch)相当于sizeof(变量名),因为是char类型数据,所以结果为1
作者: 长厢厮守℡    时间: 2015-12-5 10:32
这么理解吧! 首先:‘a’是一个字符,本质上是整型数,可以查ASCII表,所以sizeof(‘a’) = 4
char ch = 'a'  这里定义了一个字符类型的数据,所以占一个字节
这么说能理解吗?




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2