前言
今天给1702班的娃们答疑,遇到了一个问题,当时很蒙,后来想了想就是之前的一个问题,当时解决了却忘了总结了,今天赶紧总结下。
正文
源程序是这样的(就作为我们的实验1)
char a = '\0x41';
printf("%x",a);
结果是个31,emmmm
看上去结果很有迷惑性,恩
其实我们只要在ASCII表里找一下0x31对应的值就好啦,是’1’。
那么我们再改成’\0x51’,’\0x61’,’\0x71’试试。
结果是一样的。
让我们再做个实验验证我们的结论:
char a = '123';
putchar(a);
这时直接打印3。
需要注意的是,上面的两个实验都会报warning,而且都是相同的