gpt4 book ai didi

c - 超出数组最大索引的未定义行为

转载 作者:太空狗 更新时间:2023-10-29 15:12:45 25 4
gpt4 key购买 nike

情况:

我正在参加速成类(class)以熟悉 C,我注意到本类(class)的作者可以打印超出数组索引的数组值,并确信该值将为 0 每一次。

下面速成类的代码:

int arrayVar[] = {45, 67, 34, 23};
printf("This array index value is %d", arrayVar[4]);

代码输出:

This array index value is 0

根据我的经验,在 C 的修补/测试期间,一旦超出数组的最大索引,您就会进入未定义的行为领域,任何可能会发生,那么他怎么能如此自信(而且正确)每次都看到 0 值?

如果我打印超出数组最大索引的值,我会看到“随机”值(或者,留在内存中的值,对吧?)。

为什么我的体验与我在本类(class)中看到的不同?这只是C标准的不同吗?或者这是否表明编译器存在差异?还是两者兼而有之?

环境信息:我使用的是 C11 标准,并且我使用的是 ubuntu 默认的编译器(我很确定),位于 /usr/bin/cc

编辑:对于任何有兴趣了解我所看到的内容的人,这里有一个类(class)链接(系统可能会提示您登录 Udemy):https://www.udemy.com/c-fast-crash-course-introduction/learn/lecture/12868540#questions

Sample Image

最佳答案

类(class)作者有误

就这么简单。

关于c - 超出数组最大索引的未定义行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57127660/

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