C语言的奇技

1、一个整型变量/字面值常量通常足够大,可以同时表示几个字符,所以有的C编译器允许字符常量/char整型常量有多个字符。这表明当用‘ yes’ 替代“ yes” 时可能不会被发现。后者表示四个分别装有y, e, s,null字符的连续地址空间的首地址。前者表示一个由y, e, s以某种方式定义的字符的整数。在这两个变量之间的任何相似之处都只是一种巧合。

例如,程序

#include <stdio.h>

void main()
{
int yes_char ='yes';
printf("a is %x\n", yes_char);
return;
}

结果为:

a is 796573

其中,79,65,73分别是字母y,e,s的16进制ASCII码值。

上一篇:Android Layout XML属性


下一篇:关于Linux虚拟化技术KVM的科普 科普四(From humjb_1983)