《c和指针》笔记 |
您所在的位置:网站首页 › 转义字符范围 › 《c和指针》笔记 |
书中有如下描述: \ddd ddd表示1~3个八进制数字,这个转义符表示的字符就是给定的八进制值所代表的字符 \xddd 与上例类似,只是八进制数换成了16进制数。 注意,任何十六进制数都有可能包含在\xddd序列中,但如果结果值的大小超过了表示的字符范围,其结果就是未定义。
问题: 为什么直说了\xddd呢,那\ddd,如果超过了表示字符的范围,会怎样呢。 于是做了如下测试: #include int main(void){ printf("\x123456\n"); return 0; }编译后报如下错误:printf.c: In function 'main': printf.c:4:9: warning: hex escape sequence out of range [enabled by default] 运行后输出: V 猜测计算机将\x1234看成了整体,因为超出了255,而无法显示,16进制的56在ascii中正好是V。
再进行如下测试: #include int main(void){ printf("\123456\n"); return 0; }编译无error运行后结果为: S456 其中8进制123在ascii中正好是S,456不进行翻译。
可见计算机对8进制和16进制的转义符处理时不一样的。
|
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |