本帖最后由 打洞的土拨鼠 于 2014-6-14 22:58 编辑
- #include <stdio.h>
- int main(void)
- {
- char name1;
- scanf("%c", &name1);
- printf("%c\n", name1);
- char name2 = 'BOOK';
- printf("%c\n", name2);
- }
复制代码
这个是源代码。
我能理解在name2中,C将字符常量视为int类型而非char类型,这将4个独立的8位ASCII码存储在一个32位单元中。这个时候,将book赋给char变量,那只有最后8位会起作用,因此变量值是'K';
我的问题是:
在char name1中,我scanf调试的时候,同样输入BOOK,显示的结果是B,这是为什么呢?
我用的是VS2013编写的,可能代码有点点不一样。运行结果如图:
|
|