以下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