C语言转义字符
\x18\0123\01\0\x18\08qw\0168\0上面两行,分别有几个字符,为什么?要详细的解答,比如为什么\012不是直接就在\0结束,而是有\012??...
\x18\0123\01\0\x18\08qw\0168\0上面两行,分别有几个字符,为什么?要详细的解答,比如为什么\012不是直接就在\0结束,而是有\012??
展开
2013-08-21
展开全部
有13个字符。分别如下:1:\x182:\0123:'3'4:\015:\06:\x187:\08:'8'9:'q'10:'w'11:\01612:'8'13:\0
对于你的问题\012,你得看看转义字符的定义了。\ddd的一个转义字符,注意,只是一个字符,是用1-3位8进制常数来表示字符的转义字符。\0当然就算是这个转义字符了,只有1位。而\012是有3位,所以当然看成是3位的,而不会看成是1位的\0和‘1’和‘2’这3个字符了。注意\ddd中的d代表一个8进制常数位,编译器会一直读取到无法读取为止,无法读取有两种情况,一种就是后面的数字根本不是一个8进制常数位(注意8进制常数位只有0到7),比如\08这里就不是一个字符,而是两个字符了\0和‘8’,因为8不是8进制常数位。同理可知\0a,\019这些都不是一个转义字符了。第二种情况就是读取的位数达到了上限(上限是3位),比如\01234,这里就不止一个字符了,而是\012,'3','4'这个3个字符构成的字符串了。这样说你应该能明白了吧。祝学习进步~~~
对于你的问题\012,你得看看转义字符的定义了。\ddd的一个转义字符,注意,只是一个字符,是用1-3位8进制常数来表示字符的转义字符。\0当然就算是这个转义字符了,只有1位。而\012是有3位,所以当然看成是3位的,而不会看成是1位的\0和‘1’和‘2’这3个字符了。注意\ddd中的d代表一个8进制常数位,编译器会一直读取到无法读取为止,无法读取有两种情况,一种就是后面的数字根本不是一个8进制常数位(注意8进制常数位只有0到7),比如\08这里就不是一个字符,而是两个字符了\0和‘8’,因为8不是8进制常数位。同理可知\0a,\019这些都不是一个转义字符了。第二种情况就是读取的位数达到了上限(上限是3位),比如\01234,这里就不止一个字符了,而是\012,'3','4'这个3个字符构成的字符串了。这样说你应该能明白了吧。祝学习进步~~~
2013-08-21
展开全部
这是转义字符的一种用法,输出的是八进制和十六进制如\x18为十六进制的18即为十进制的24,输出的是ASCII码的第24个字符同理\0123为八进制的123为十进制的27,输出的是ASCII码的第27个字符
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询