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码值。

posted @ 2016-11-03 11:29  xiulug  阅读(119)  评论(0编辑  收藏  举报