NULL
是什么?
NULL
是一个指向内存地址 0 的特殊常量。按照惯例,它通常被用来表示空值或无数据。在上面的代码中,我们使用NULL
来表示虽然我们有一个数据指针,但它目前还没有指向任何内容。在本书的后续章节中你讲经常性地遇到这个特殊的常量,所以,请眼熟它。
为什么要使用
strlen(s) + 1
?在 C 语言中,字符串是以空字符做为终止标记的。所以,C 语言字符串的最后一个字符一定是
\0
。请确保所有的字符串都是按照这个约定来存储的,不然程序就会因为莫名其妙的错误退出。strlen
函数返回的是字符串的实际长度(所以不包括结尾的\0
终止符)。所以为了保证有足够的空间存储所有字符,我们需要在额外 +1。