C语言中关于ASCII码值的问题

来源:百度知道 编辑:UC知道 时间:2024/06/28 06:19:36
书上说:在C语言中,有些不能用符号表示的控制符等式,还可以用“\”加上1-3位8进制表示的其ASCII码值表示 。如'\0'表示CTRL+A,'\33'或'\033'表示ESC.想问如'\0'表示CTRL+A这句是不是书上错了,觉得奇怪?不是表示NULL吗?

如'\0'表示CTRL+A -- 错。

键值的测定很简单:
int key,key2;
key = getch();
printf("\nkey value = %02x ",key);
if (key == 0) {
key2 = getch();
printf("\nkey value = %02x\n",key2);
};
打出来就是 16 进制的 键值。

CTRL+A 键值 0x01
ESC 键值 0x1b
F1 键值 0x003b
F2 键值 0x003c
向上箭头 0xe0
.....

NULL即0,在c中所有的null都表示的是机器码0,
CTRL+A指的是向当前输入一个值为0的asc码,就像按A输入的是一个值为65的asc码一样。
顺便指出,NULL属于控制字符,是字符串的结尾符,区别于回车符,不再键盘上设置键位。在阅读上我们是通过回车符区别字符串段的,而在程序处理时都是通过NULL来区别字符串段的。

不知道你是不是问的这个意思,再讨论。