以下のコードを検討してください。
#include<stdio.h>
int array[]={1,2,3,4,5,6,7,8};
#define SIZE (sizeof(array)/sizeof(int))
int main()
{
printf("%d",SIZE);
if(-1<=SIZE) printf("1");
else printf("2");
return 0;
}
出力として 82 が得られますが、if 句の mean -1 を 0 または非負の数に置き換えると、出力として 81 が得られますif(-1<=SIZE)
。異なる出力が得られるのはなぜですか?if(0<=SIZE)
if(1<=SIZE)