重複の可能性:
C のマクロ展開と整数演算について混乱して
いる なぞなぞ (C で)
次の 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;
}
何故ですか?