c语言中,字符串"\0116"表示几个字符?

[复制链接]
查看11 | 回复5 | 2011-1-22 00:35:18 | 显示全部楼层 |阅读模式
c语言中表示字符时,“\”后面的数字可以是一个不以“0”开头的八进制数字,那"\0116"是表示'\0'+'1'+'1'+'6'吗?还是说“\”后的八进制也可以以0开头?

回复

使用道具 举报

千问 | 2011-1-22 00:35:18 | 显示全部楼层
"\0116" 表示 2 个字符。\0 开始的数,如果后面的2个数字是0-7范围,处理为合法的八进制数,占 1 个 byte,\011 符合要求。后面的 6 为另一个 字符。所以是 2。验证方法:char str[]="\0116";printf("%d", strlen(str));======================"\1116"也表示 2 个字符。\111 合法的八进制数,1 byte 可存, 6 为另一个 字符。也 是 2"\4116", \411是八进制数,但超出 1 byte 允许范围,不合法。"\0186";8不是 八进制数,"\01" 为一个八进制数,占1字符,8占1字符,6占1字
回复

使用道具 举报

千问 | 2011-1-22 00:35:18 | 显示全部楼层
c语言中表示字符时,“\”后面的数字不管是不是以“0”开头都是八进制数字,但'\'后面只接收3个数字,即'\116'表示1个字符,而\0116表示2个字符,1个是'\011',1个是'6'.
回复

使用道具 举报

千问 | 2011-1-22 00:35:18 | 显示全部楼层
“\”后面的数字以“0”开头的是八进制数字,以“0x”开头的是十六进制。
回复

使用道具 举报

千问 | 2011-1-22 00:35:18 | 显示全部楼层
好像是“\011”"\6"的结合;
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行