Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 常量数组的默认值(不是所有索引都显式设置时)?_C_Arrays_Constants - Fatal编程技术网

C 常量数组的默认值(不是所有索引都显式设置时)?

C 常量数组的默认值(不是所有索引都显式设置时)?,c,arrays,constants,C,Arrays,Constants,我到处找了又找不到答案。我想知道的是: 如果我声明一个静态无符号字符常量数组[256]={[0]=},, 我是否可以期望未指定的元素(在本例中,除了索引0处的元素之外的所有元素)具有特定的值,或者它们是随机的 我需要这个常量查找表,它不会填充所有元素,但不会太大,所以浪费一些空间不是问题 欢迎对更合适的数据类型或约定提出建议 谢谢 数组的其余部分将初始化为零 此外,还可以初始化数组中的多个元素,例如: char arr[10] = {1, 2, 3}; 将创建阵列arr并将其初始化为: ind

我到处找了又找不到答案。我想知道的是:

如果我声明一个
静态无符号字符常量数组[256]={[0]=},,
我是否可以期望未指定的元素(在本例中,除了索引
0
处的元素之外的所有元素)具有特定的值,或者它们是随机的

我需要这个常量查找表,它不会填充所有元素,但不会太大,所以浪费一些空间不是问题

欢迎对更合适的数据类型或约定提出建议


谢谢

数组的其余部分将初始化为零

此外,还可以初始化数组中的多个元素,例如:

char arr[10] = {1, 2, 3};
将创建阵列arr并将其初始化为:

index | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
---------------------------------------------
value | 1 | 2 | 3 | 0 | 0 | 0 | 0 | 0 | 0 | 0

如果您想要某些特定的行为,那么以这种方式初始化它。假设程序正确运行所依赖的编译器的某些怪癖只是自找麻烦。

如果您想明确说明它,并且您使用的是gnu c,那么总会有

char array[256] = {[0 ... 255] = 0, [7] = 'f',/*and so on...*/};

初始值设定项中未指定的元素有一个定义良好的值。谢谢,现在我可以安全地走了。:)不,并非总是有
。这是特定于gcc的扩展,不是语言的一部分。为0使用范围是多余的,但对其他值可能有用。我理解这是多余的,但它澄清了意图。它表明您依赖于零初始化数据。出于同样的原因,我使用
malloc
然后使用
memset
,而不仅仅是
calloc