C语⾔⼩细节2——分析字符的个数
C语⾔⼩细节2
char c[] = "ab\0123\\098";字符长度是多少,期末考试的题⽬容易出现这种题⽬。
再⽐如 char d[] = "ab'1'\\\1278"的字符长度
ascii共有多少个字符我们来分析字符长度先看c字符数组,a b是两个字符,\012得看成⼀个字符,这代表⼋进制数,也就是1*8^1+2*8^0=10,也就是10这个ASCII码对应的字符,3单独算⼀个字符,然后\\代表转义字符\,最后098分别代表三个字符,最后还要加上字符‘\0’,因为这是字符串常量,有双引号是代表字符串常量。所以⼀共九个字符
再看字符数组d,a b分别是两个字符,',1,'这是三个字符,1的两边是单引号,后⾯三个///咋看呢,//代表转义字符//,/127代表⼋进制数与前⾯的/0123是⼀样的分析⽅法,后⾯还有⼀个单独的8,注意不要搞成/1278看成了⼀个字符。⼋进制⼀般看前三位,后⾯多就不算了
总结转义字符好理解,可能最不好理解的就是这⾥的⼋进制数,\127与\012这两个都是⼋进制,在字符串中出现“\”后⾯的数字默认⼋进制与前⾯的有⽆0⽆关系。⽽⼀般的⼋进制确实是以0开头的。⽽这⾥是在字符串中可能就有点不同,⽽且\后⾯表⽰⼋进制的数就只有3位,3位之后的就不算了。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论