当我运行这两个使用sizeof()运算符的程序时,会产生以下输出。 2个代码之间的唯一区别是d在第一个代码中初始化为0,在第二个代码中初始化为-1。为什么第二个程序没有进入循环体?
1)
#include<stdio.h>
int main()
{
int d;
printf("Before loop\n");
for(d=0;d<=sizeof(int);d++)
{
printf("sizeof operator\n");
}
printf("After loop\n");
return 0;
}
输出
Before loop
sizeof operator
sizeof operator
sizeof operator
sizeof operator
sizeof operator
After loop
2)
#include<stdio.h>
int main()
{
int d;
printf("Before loop\n");
for(d=-1;d<=sizeof(int);d++)
{
printf("sizeof operator\n");
}
printf("After loop\n");
return 0;
}
输出:
Before loop
After loop