我看C语言教材,上面说'A'是一个字符,A也是一个字符,那字符的定义或者含义是什么?还有关于转义字符问题
书上说'A'和A都是一个字符。字符的含义是什么?还说字符是按其所对应的ASCII码值来存储的,一个字符占一个字节。那么'A'和A都是占一个字节?还有一句原文:“通常使用转...
书上说'A'和A都是一个字符。字符的含义是什么?
还说字符是按其所对应的ASCII码值来存储的,一个字符占一个字节。那么'A'和A都是占一个字节?
还有一句原文:“通常使用转义字符表示ASCII码字符集中不可打印的控制字符和特定功能的字符,如用于表示字符常量的单引号,用于表示字符串常量的双引号和反斜杠等。”这句话中“ASCII码字符集中不可打印的控制字符”是什么意思?
什么是不可打印字符?
转义字符也能用单引号或者双引号来表示吗?
问题比较多,希望有明白的朋友解答一下。谢谢 展开
还说字符是按其所对应的ASCII码值来存储的,一个字符占一个字节。那么'A'和A都是占一个字节?
还有一句原文:“通常使用转义字符表示ASCII码字符集中不可打印的控制字符和特定功能的字符,如用于表示字符常量的单引号,用于表示字符串常量的双引号和反斜杠等。”这句话中“ASCII码字符集中不可打印的控制字符”是什么意思?
什么是不可打印字符?
转义字符也能用单引号或者双引号来表示吗?
问题比较多,希望有明白的朋友解答一下。谢谢 展开
1个回答
展开全部
我从头跟你讲一讲,首先你这样理解,计算机中没有字符这个东西。
所谓的字符就是指一个0-255的数字,和int没什么区别,就是最大只能是255。
然后当你调用printf时,printf函数会把这个数值翻译成A,B,C,0,1等等来输出。其实没什么神秘就是使用一张ASCII对照表,每个数字对应一个字符这样翻译。请参考http://www.asciitable.com/
由于英语字母加上数字等常见字符的总数不到255个,所以有些数字对应的符号比较诡异,其中一类就是无法显示的,但是这些字符可能有些其它含义(例如表示文件结尾)。
你在写程序的时候会写
char c = 'A';
这时候编译器(VC++)会把'A'通过ASCII对照表转换成对应的数字放在c变量中。
转移字符就是指有些字符不能直接写,例如',因为他会和起始符号混淆,要这样写:
char c = '\'';
不能这样写
char c = ''';
还有就是"和\本身,应该这样写
char c = '\"';
char c = '\\';
还有一类要用转移字符的就是无法打印的字符,这个用的比较少了。
所谓的字符就是指一个0-255的数字,和int没什么区别,就是最大只能是255。
然后当你调用printf时,printf函数会把这个数值翻译成A,B,C,0,1等等来输出。其实没什么神秘就是使用一张ASCII对照表,每个数字对应一个字符这样翻译。请参考http://www.asciitable.com/
由于英语字母加上数字等常见字符的总数不到255个,所以有些数字对应的符号比较诡异,其中一类就是无法显示的,但是这些字符可能有些其它含义(例如表示文件结尾)。
你在写程序的时候会写
char c = 'A';
这时候编译器(VC++)会把'A'通过ASCII对照表转换成对应的数字放在c变量中。
转移字符就是指有些字符不能直接写,例如',因为他会和起始符号混淆,要这样写:
char c = '\'';
不能这样写
char c = ''';
还有就是"和\本身,应该这样写
char c = '\"';
char c = '\\';
还有一类要用转移字符的就是无法打印的字符,这个用的比较少了。
更多追问追答
追问
你好,谢谢你的回答。
你说的无法显示的字符就是不可打印的字符吗?
例子中 char c = 'A';
其中字符是'A'这个整体还是字符是A。从书上的话来看'A'和A都是字符,这是正确的吗?
书上有句话这样说的:“通常使用转义字符表示ASCII码字符集中不可打印的控制字符和特定功能的字符。”这句话中的“ASCII码字符集中不可打印的控制字符”我没理解是什么意思。
追答
无法显示就是不可打印。
不可打印的字符往往有些功能,例如换行,表示文件结尾什么的,这就是书上说的控制字符。
c中存储的是字母A对应的值。'A'是一个字符,A也是一个字符-----我不太明白,这句话什么意思?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询