黑马程序员技术交流社区

标题: 今天学习变量的存储原理时有一点疑问没有想清楚 [打印本页]

作者: wanglz888168    时间: 2015-6-24 16:15
标题: 今天学习变量的存储原理时有一点疑问没有想清楚
整形变量和字符型变量在内存中存储的都是一个二进制数,怎么区分呢?比如说字符a和97在内存中存储的内容是一模一样的,具体怎么区分呢?
作者: XiaoBaoMi    时间: 2015-6-24 21:39
其实吧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而已
作者: bsx881220    时间: 2015-6-24 21:50
存储的值一样,不过占用的空间大小却不一样。区分是由系统区分的,不需要人为区分
作者: 18678927239    时间: 2015-6-24 22:27
一楼回答的很好




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