gpt4 book ai didi

c - 数组初始值设定项中有多余的元素可以吗?

转载 作者:太空狗 更新时间:2023-10-29 17:20:37 25 4
gpt4 key购买 nike

通常当我们初始化一个数组时,我们可能会这样做:

int arr[] = {1, 2, 3, 4, 5};

但是像下面这样显式地限制数组的长度可以吗? :

int arr[3] = {1, 2, 3, 4, 5};

尽管编译器发出了一些警告,但可执行文件似乎没有任何问题。

最佳答案

不,这不行。来自 C99,6.7.8.2:

Constraints

  1. No initializer shall attempt to provide a value for an object not contained within the entity being initialized.

在我看来,这意味着提供过多的初始化元素是违反约束的,因此它会调用未定义的行为。

关于c - 数组初始值设定项中有多余的元素可以吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18929270/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com