c语言里面遇到的小问题

\0空字符有什么用?intmain()
{
inta=1;
printf("ab\0efg\n");
printf("ab\060efg");
return0; 输出是什么?

4个回答

\后面加数字代表ASCII码中相应的字符
第一句中,\0表示空字符,也是字符串的结束字符,所以第一句输出应该是ab
第二句中,也有个+数字,而这个数字是060,显然这个是8机制的写法,所以060(8进制)= 48(10进制),所以那个字符就是\48,即字符0,所以第二句输出应该是ab0efg

最后的输出就是abab0efg

去写了下,输出abab0efg啊,?,为什么会是这个?

都输出ab,\0用于判断字符串结束

第一个输出ab ,第二个输出ab0efg,因为\060 060是八进制的,转换成10进制是48 \48 转换为字符是0 故而两句输出结果是abab0efg

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!