空格是字符吗 ?是转义字符吗?转移字符一共有多少个?空格有对应的ASCII码值吗?

如题所述

空格是字符,但不是转义字符,空格的ASCII码值是0x20


所有的ASCII码都可以用“\”加数字(一般是8进制数字)来表示。而C中定义了一些字母前加"\"来表示常见的那些不能显示的ASCII字符,如\0,\t,\n等,就称为转义字符,因为后面的字符,都不是它本来的ASCII字符意思了。


追问

空格的ASCII码是0*20那么不就是0吗?还有ASCII码不就是数字吗,为什么你说ASCII码用\加八进制数表示呢?

追答

空格的ASCII是0x20,并不是0

这是很多初学者的错误认识。

结束符的ASCII码才是0.

我没有说转义字符一定要用八进制来表示,我不知道你是从哪里看来的。
一般ASCII码都是用16进制或者八进制来表示,根据编程者自己的习惯,也可以用其他进制来表示,这都是可以的。

追问

你说的意思是不是一般ASCII码都用八进制或十六进制 而我们现在所说的a的ASCII吗是97是用十进制表示的,对不对?但是我们现在一说到ASCII码都默认为十进制表示呀!

追答

你用10进制也是可以的,对于人来说,10进制数是比较敏感的,但是对于计算机来说,二进制是最敏感的,其次是16进制和八进制。

你以后做项目就知道了,基本上数字都是16进制的。

追问

你说的只有结束符的ASCII码是0 ,那么结束符有几个,我只知道\0和\n ,他俩有什么区别呢?gets以\n为结束符puts以\0为结束符,是规定的吗?

追答

结束符只有一个是'\0',对应的ASCII是0x00,10进制就是0
'\n'是换行符,不是结束符

追问

第三条

追答

首先你没有弄明白C/C++的结束符是什么。

你的截图上的题目是以换行符来作为结束符,这里的结束符并不是C/C++的字符串的结束符,而是你以什么作为你输入的结束符,这里的题目也可以改成以#作为结束符,或者其他字符作为结束符。只是为了告诉程序,用户输入完了,可以执行下面的代码。

而C/C++的结束符是'\0',表示字符串有效长度。
如 char str[] = "abc\0bbc";
这里str字符串的长度是3,遇到结束符'\0',就结束了,你如果打印str的话,输出结果是abc。

自己好好看看书吧,基本没有什么基础。

追问

那gets以\n为结束符是规定的啊!

追答

gets从标准输入设备读字符串函数。可以无限读取,不会判断上限,以回车(\n)结束读取
所以程序员应该确保buffer的空间足够大,以便在执行读操作时不发生溢出。

温馨提示:答案为网友推荐,仅供参考
相似回答