【发布时间】:2013-08-05 08:56:26
【问题描述】:
何时需要为 C 字符串中的 NULL 字符显式提供空格。
例如;
尽管我没有声明 str 为 7 个字符长,即字符串的字符加上 NULL 字符,但此操作没有任何错误。
#include<stdio.h>
int main(){
char str[6] = "string";
printf("%s", str);
return 0;
}
虽然在这个问题https://stackoverflow.com/a/7652089用户说
"如果您稍后需要修改字符串,但知道它不会超过 40 个字符(或 39 个字符后跟空终止符,具体取决于上下文),这很有用。"
“取决于上下文”是什么意思?
【问题讨论】:
-
我猜在这种情况下,您的 str 是一个 char 数组,因此您可以使用 sizeof 获得例如长度,但是如果您将 str 传递给函数,您将得到一个 char* 并且 sizeof 将给出另一个值
标签: c