C编程语言中'\ 0'和'\n'有什么区别?

Dan*_*ann 1 c escaping character

C编程语言中'\ 0'字符和'\n'字符有什么区别?

Ale*_*Ale 9

'\0'是一个NULL字符(ASCII 0),它实际上也是一个字符串终止符...(C字符串以NULL结尾):如果你有一个字符串之类的"this is\0a string",那么之后的部分'\0'将被忽略(即使它实际上是在里面)生成的代码).

'\n'是换行符(ASCII 10).值得注意的是,在某些情况下,这个换行符实际上可以被转换.例如,在Windows上,文件中的换行符由"\r\n"序列指示(两个字节:ASCII 13,回车符,后跟ASCII 10,换行符),如果您写入文件(例如使用fprintf()),则包含'\n'字符的字符串,"\r\n"如果文件以ASCII模式打开(通常是默认模式),它将自动转换为序列.

  • @alvits它不能是CRLF,因为`'\n'`是一个字符.但是,I/O例程(例如``fprintf()`)确实会将其转换为`"\ r \n"(CRLF),但如果文件是以二进制模式打开则不会.这是一个好点,我会编辑提及它. (2认同)
  • C代码中的@alvits`'\n'`始终是换行符.您正在谈论在读取或写入文本流时执行的翻译.(即,磁盘上的文件中的内容可能与您在阅读时在代码中看到的内容不匹配). (2认同)

Jon*_*sky 5

'\0' 是一个空值:这会终止一个字符串。'\n' 是换行符