运行下面的代码,结果为?
#include<stdio.h>
void main()
{
unsigned short i,j;
unsigned long x=0;
for(i=0,j=2;i!=j;i+=5,j+=7)
{
x++;
}
printf("%ld\n",x);
}
答案是:32767
unsigned short占2个字节,表示范围为0~2^16-1,按照题意,应该是j比i大2^16时,在存储中,i和j的值相等。
0+5*x=2+7*x-65536,解得x=32767。此时i=j=32763