C语言中表达式 strlen("\x69\082\n") 的值为什么是0?
在 C 语言中,字符串是以空字符('\0') 结尾的字符数组。在表达式strlen('\x69\082\n')中,\x69表示 ASCII 码为 0x69 的字符,即字符'i',然后\082表示八进制数 082,转换为十进制是 54,对应 ASCII 码中的字符'6'。最后\n表示换行符。
所以,strlen('\x69\082\n')可以看作是以下字符数组:{'i', '6', '\n', '\0'}。
在该字符数组中,空字符('\0') 是字符串的结束符,strlen 函数会计算从给定地址开始直到遇到空字符的字符个数。由于该字符数组的第四个元素是空字符('\0'),所以strlen('\x69\082\n')的值为 0。
原文地址: https://www.cveoy.top/t/topic/bOa0 著作权归作者所有。请勿转载和采集!