我试着回忆五年前我简短的C经历.

我可以发誓我读到一个已定义但未初始化的字符串被设置为所有空值.换句话说

char string[10];

由10个空字符组成

char string[10] = "Kevin";

由字母"K"、"e"、"v"、"i"、"n"和五个空组成.

这是真的吗

  1. 总是
  2. 有时,取决于编译器?
  3. 从不

推荐答案

换句话说,这个字符字符串[10];由10个空字符组成,

这取决于where和变量.

char here_yes[10]; // 10 '\0' characters
int main() {
    char here_no[10]; // 10 unknown garbage values
    static char but_here_also_yes[10]; // also 10 '\0' characters
}

这个字符串[10]="Kevin";由字母"K"、"e"、"v"、"i"、"n"和五个空组成.这是真的吗:永远?

对如果部分初始化一个字符串或变量,则其余部分将填充'\0'或零.

char this_has_10_nulls[10] = "";
int main() {
    char this_has_ab_followed_by_8_nulls[10] = { 'a', 'b' };
    static char this_has_Kevin_followed_by_5_nulls[10] = "Kevin";
}

C++相关问答推荐

如何用C(使用两个s补数算术的32位程序)计算

有效地计算由一组点构成的等边三角形和等腰三角形的数量

堆栈帧和值指针

在一个小型玩具项目中实现终端历史记录功能

实现简单字典时C语言中的段错误

我怎么才能用GCC编译一个c库,让它包含另一个库呢?

这个计算C中阶乘的函数正确吗?

如何编写一个for循环来计算C中各项的总和?

如何在POSIX-UEFI中获得输入?

在C++中父进程和子进程中的TAILQ队列同步问题

获取前2个连续1比特的索引的有效方法

如何使这个While循环在新行上结束

我正在try 将QSORT算法实现为C++中的泛型函数

c程序,让用户输入两类数字,并给出输出用户输入多少个数字

在printf()中用%.*S格式填充长度为0的字符串是否会调用任何UB?如果是,是哪一个?

如何编写postgresql支持函数

如何打印循环调度问题的时间表

在我的第一个C语言中观察到的错误';你好世界';程序

DennisM.Ritchie的C编程语言一书中关于二进制搜索的代码出现错误?

execve 不给出which命令的输出