给定以下声明:
char inputBuffer[12];
数组中每个字符的默认值是什么? 我想知道这个问题因为如果我想要清除数组中的任何一个位置,我需要知道给它赋什么值。
给定以下声明:
char inputBuffer[12];
数组中每个字符的默认值是什么? 我想知道这个问题因为如果我想要清除数组中的任何一个位置,我需要知道给它赋什么值。
除非数组被定义在文件作用域或具有static
存储类别说明符,否则数组元素的值是不确定的,如果满足上述条件,则数组元素被初始化为0
。
#include <stdio.h>
char inputBuffer1[12]; // elements initialized to 0
static char inputBuffer2[12]; // elements initialized to 0
void foo(void)
{
char inputBuffer3[12]; // elements have indeterminate value!
static char inputBuffer4[12]; // elements initialized to 0
}
char inputBuffer3[12] = {0};
,在它被声明后使用memset
。 - ouahchar inputBuffer[12];
是全局或静态的,则会用\0
进行初始化。char inputBuffer1[12]; /* Zeroed */
static char inputBuffer1[12]; /* Zeroed */
int fn()
{
static char inputBuffer3[12]; /* Zeroed */
}
int fn2()
{
char inputBuffer4[12]; /* inderminate value */
}