gpt4 book ai didi

c - 下面代码中的数组是什么原因导致打印不出来的?

转载 作者:太空宇宙 更新时间:2023-11-04 01:08:59 25 4
gpt4 key购买 nike

下面的代码有问题...有人可以向我解释问题出在哪里吗?

#include<stdio.h>

#define TOTAL_ELEMENTS (sizeof(array) / sizeof(array[0]))
int array[] = {23,34,12,17,204,99,16};

int main()
{
int d;

for(d=-1;d <= (TOTAL_ELEMENTS-2);d++)
printf("%d\n",array[d+1]);

return 0;
}

最佳答案

常规算术转换。

<=表达式 int-1转换为 sizeof 的无符号类型并成为一个巨大的值(value)和<=那么表达式是错误的。

使用:

for(d=-1;d <= (int) (TOTAL_ELEMENTS-2);d++)

关于c - 下面代码中的数组是什么原因导致打印不出来的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16981790/

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