期末考试将近,开始复习C语言,发现自己的基础概念掌握得还不是很牢固,竟然对字符的认知都不全面。
在C语言中,字符是以ASCII码的形式存储在内存中的(值得注意的是存进去的ANSCII码最终转换成了二进制存在了内存单元中),只能用单引号’A’来表示字符。
一个有趣的问题:
在C语言中,‘1’+'1"=?
上机运行程序看看:
得到的结果是98和b,这是为什么呢?
查阅ANSCII表才知道,'1’这个形状(我是说 1 )的ANSCII码为49,那么两个49相加肯定等于98啦,刚好98是’b’的ANSCII码。这就输出了98和b。
总结
在C中,整数1和字符1完全是两回事
所有系统中,都用一个字节(8位)存储字符(详见谭老红宝书P48)