以下C程序的预期输出是打印数组元素。但是当实际运行时,它并不这样做。打印阵列元素
#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;
}
是什么原因?
为什么不能简单地用于'(d = 0; d
fredoverflow
2010-08-01 18:06:10
也许这是一个有用的例子,说明在C中正确编程有多困难。鉴于此,这确实是一个很好的例子。 – 2010-08-01 18:13:32
这个问题是[Gowri Korumar的C谜题](http://www.gowrikumar.com/c/)的一部分,它汇编了50个非常有教育意义的C语言问题。我从过去的知识和研究中回答了前25个问题,以帮助解答:[C puzzle解答](http://codeitdown.com/c-puzzles-answered/)。 – JoseV 2013-12-27 05:12:51