发布网友 发布时间:2022-05-21 12:38
共2个回答
热心网友 时间:2023-10-25 00:04
在C语言中的字符和字符串中可以使用反斜杠来表示转义字符,所谓转义,顾名思义,改变其本来的意义,例如一些不可见字符,要表达他们必须使用可见字符进行转义。'\0'和0在本质上是等价的,'\0'表示空字符,但是其ASCII的值为0,任何类型在被编译以后都以数字的形式存储,因此本质上空字符和数字0是等价的。C语言的字符串规定以空字符结尾,因此应该说字符串是遇'\0'结束(这是一种人为规定,编译器遵守这个规定)。因此判断字符串的结束使用'\0'和使用0是没有区别的,因为他们本质上都是0。追问请就题目回答追答我已经说的很清楚了哦,'\0'本质上就是0呀,是人为规定的字符串结束标志,"012xy\08s34f4w2"中有个'\0'也就是0呀,for循环的结束条件就是0,所以循环只是执行了5次,5次中只有012三个字符符合if判断,所以最后n=3。实际上'\0'后面东西还在的,不信你printf("%s\n",s+6)试试。
热心网友 时间:2023-10-25 00:05
不可以拆开,\0是字符,在ASCII中是数值是0追问答案是3,确实遇到了\追答s[i]!=0这里的0是数字0不是字符0,所以符合if里面条件的就012,n++3次,这样说可以理解?然后就遇到\0结束