c语言里面遇到的小问题

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

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

最后的输出就是abab0efg

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

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

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