A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© OnTheWay_1314 中级黑马   /  2015-12-1 09:53  /  1637 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

sizeof('a')和char ch = 'a';sizeof(ch)这两个占得内存分别是多少?为什么呢?

4 个回复

倒序浏览
看编译器吧
回复 使用道具 举报
sizeof('a')是四字节,char ch = 'a';sizeof(ch)是一字节; sizeof('a') ‘a’存储在计算机里是 以字符存储 占四字节的,   char ch = 'a';sizeof(ch) ch在计算机中存储是以 阿斯科玛值存储 的,整个阿斯科玛表的内容不多,所以计算只分配一字节存储整个表格就够了,     我是这么理解的
回复 使用道具 举报
本帖最后由 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
回复 使用道具 举报
这么理解吧! 首先:‘a’是一个字符,本质上是整型数,可以查ASCII表,所以sizeof(‘a’) = 4
char ch = 'a'  这里定义了一个字符类型的数据,所以占一个字节
这么说能理解吗?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马