看了这两幅图你是否存在疑惑同为字符类型的3与'3'为什么值是不同的?
背景知识介绍:
字符类型数据存储的形式是ASCII码。例如:字符'0'的ASCII码值为48(十进制数),字符‘A’的ASCII码值为65。
如果以特定的格式输出,例如使用‘%c’格式输出,系统会打印ASCII码所对应字符,如果使用‘%d’格式输出,系统直接输出ASCII码对应整数。
由此可见程序本身是没有问题的,‘3’的ASCII码值可由‘0’的ASCII码值加3得51这也并没有问题。
那为什么3的ASCII码值还是3呢?
大胆推测这个3在内存中存储的本身就是ASCII码值(我们可以简单理解为是一个整数)。也就是说它本身是当一个字符所对应ASCII码值存储的(可理解为你要表示一个字符,你可以直接写出这个字符,也可写出这个字符所对应的ASCII码值来表示它)。
论证如下:
我们可以用一个ASCII码值反推出它所对应的字符。
3与‘3’的区别你明白了吗?
以后可别写错哟!
如果此篇文章对你有帮助,请点个关注和赞吧!