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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 杨冬武 中级黑马   /  2016-2-1 23:30  /  1111 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

当sizeof对char进行操作时
你会发现
当char为常量时占用4个字节
当char为变量时占用1个字节

5 个回复

倒序浏览
这个问题有意思,你搞懂为什么没?求解释
回复 使用道具 举报
我猜测   变量是我们声明的时候开辟的 1 字节大小的内存空间,而 常量 可能是系统事先以 4 字节大小的某种存储方式存在某个地方,我们调用时占用 4 个字节,纯属猜测。。。。
回复 使用道具 举报
char类型就是一个字节
当你对char类型的字符使用sizeof(如‘a’)时,
会把它转化为整型,所以就是四个字节
回复 使用道具 举报 1 0
char是字符型,我们知道,字符型在电脑中会以ASCLL码存储,比如a是97,b是98....  所以你用sizeof('a')时候,a会转换为97,就是一个整型(int)类型,int占4个字节 ,所以结果为4,相同的,char类型只占1个字节,所以为1
回复 使用道具 举报 1 0
ios_Beginner 发表于 2016-2-2 12:32
我猜测   变量是我们声明的时候开辟的 1 字节大小的内存空间,而 常量 可能是系统事先以 4 字节大小的某种 ...

楼下解释的很好

char是字符型,我们知道,字符型在电脑中会以ASCLL码存储,比如a是97,b是98....  所以你用sizeof('a')时候,a会转换为97,就是一个整型(int)类型,int占4个字节 ,所以结果为4,相同的,char类型只占1个字节,所以为1

我就复制过来了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马