虽然
整型和字符型经常吐槽实型来自金星,他们兄弟是来自火星的好兄弟,但好兄弟也有吵架的时候。请看下面的程序:
上面的程序中字符型和整型变量混合使用,输入的时候将12看作两个字符分别取值给变量ch2和num2;输出的时候都当作十进制整型。数字1的ASCII码是十进制49;数字2的
ASCII码是十进制50。但是num2输出的不是50。增加一个字符型变量ch3,将整型变量num2的值赋值给变量ch3,再输出ch3。编写程序并运行如下:
上面的程序中,输出的变量num2的值是一个负数。将变量num2的值赋值给字符型变量ch3后,输出ch3,ch3的值是2的
ASCII码。为什么用格式输入函数以字符的形式获取的
2的
ASCII码存放在整型变量num2中后,发生了变化呢?其实计算机也很无奈,它表示,并没有变化。问题在于:整型变量占用4个字节的空间;字符型变量占用1个字节的空间。格式输入函数将
2的
ASCII码
存放在整型变量num2的低1个字节中,高位的3个字节并没有改变。将变量num2以十六进制形式输出,编写程序并运行如下:
上面的程序中以十六进制形式输出num2。num2的最后一个字节存储的是数字2的
ASCII码,格式输入函数scanf获取了一个字节的数据给变量num2,其前3个字节的数据没有修改。
修改程序,将变量num2初始化为0,运行程序如下:
虽然整型和字符型是好兄弟,但是他们所占字节数不同。
长整型输出格式_整型和字符型是好兄弟(下)
最新推荐文章于 2023-05-07 15:57:07 发布