gpt4 book ai didi

c - 奇怪的值被初始化为数组

转载 作者:太空狗 更新时间:2023-10-29 14:50:20 26 4
gpt4 key购买 nike

int letters[] = {['A'] = 4, ['B'] = 8, ['E'] = 3, ['I'] = 1, ['O'] = 0, ['S'] = 5};

当我初始化上面的数组字母时,我的假设是在每个大写字母的索引处,值将是数字,即如果 ['A'] = 4,则在索引 'A' 该值将为 4,其余未初始化的值默认为 0。

但是当我打印数组字母的所有值时,我得到了这个输出:

00000000000000000000000000000000000000000000000000000000000000000480030001000000000514303876720941309621-1392458268143038767232767-197939865932767-1979398659327670010143038792832767

我不知道负数是从哪里来的。

最佳答案

'S' 是您为其赋值的最高索引,并且由于您的编码显然是 ASCII,因此数组的长度为 83 (= 0x53)。具有较小索引(没有初始化程序)的所有内容都被初始化为 0

打印数组时,您正在越界访问数组,这是未定义的行为。

您的程序可能输出的值恰好位于数组之后的堆栈中。但是,如上所述,无法保证会发生什么。

HTH

关于c - 奇怪的值被初始化为数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24335526/

26 4 0
文章推荐: c - 转到 C 中的特定地址
文章推荐: html - IE 中
文章推荐: c - getchar() != EOF
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com