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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

整形变量和字符型变量在内存中存储的都是一个二进制数,怎么区分呢?比如说字符a和97在内存中存储的内容是一模一样的,具体怎么区分呢?

3 个回复

倒序浏览
其实吧C语言本没有char,char的本质是披着ASCII码的int,当sizeof('a')时,相当于sizeof(97)所以为4个字节。关于为什么char ch = 'a'; sizeof(ch)等于1呢,因为ch是char类型的变量,C语言规定了char类型的变量占1个字节,所以sizeof(ch)为1个字节。             实际内存中,存储的都是97的二进制表示形式。不过常量字符'a'还有32(4字节)-8(97的二进制位) = 24个0而已
回复 使用道具 举报
存储的值一样,不过占用的空间大小却不一样。区分是由系统区分的,不需要人为区分
回复 使用道具 举报
一楼回答的很好
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马