《c和指针》笔记--转义符\ddd和\xddd
发布时间:2020-12-13 19:47:34 所属栏目:百科 来源:网络整理
导读:书中有如下描述: ddd ddd表示1~3个八进制数字,这个转义符表示的字符就是给定的八进制值所代表的字符 xddd 与上例类似,只是八进制数换成了16进制数。 注意,任何十六进制数都有可能包含在xddd序列中,但如果结果值的大小超过了表示的字符范围,其结果就
书中有如下描述: ddd ddd表示1~3个八进制数字,这个转义符表示的字符就是给定的八进制值所代表的字符 xddd 与上例类似,只是八进制数换成了16进制数。 注意,任何十六进制数都有可能包含在xddd序列中,但如果结果值的大小超过了表示的字符范围,其结果就是未定义。
问题: 为什么直说了xddd呢,那ddd,如果超过了表示字符的范围,会怎样呢。 于是做了如下测试:
#include <stdio.h> int main(void){ printf("x123456n"); return 0; }编译后报如下错误: printf.c: In function 'main': 运行后输出: V 猜测计算机将x1234看成了整体,因为超出了255,而无法显示,16进制的56在ascii中正好是V。
再进行如下测试:
#include <stdio.h> int main(void){ printf("123456n"); return 0; }编译无error 运行后结果为: S456 其中8进制123在ascii中正好是S,456不进行翻译。
可见计算机对8进制和16进制的转义符处理时不一样的。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |