#include <stdlib.h>
#include <stdio.h>
int main()
{
int i=10;
int entry=11;
printf("ddd:%d,%d/n",i),entry;
return 0;
}
至于运行结果是正常的可以通过看下面的修改就知道了(运行其实就是读越界了),我奇怪的是为什么这个程序可以编过去?
#include <stdlib.h>
#include <stdio.h>
int main()
{
int i=10;
int j=9;
int entry=11;
printf("ddd:%d,%d/n",i),&entry;
entry=12;
printf("ddd:%d,%d/n",i),&entry;
return 0;
}
这个问题是原来一个更复杂的printf语句简化而来的,这个bug很难找啊。
printf("i=%d,j=%d,k=%x/n",i,j),((int)&entry); 这个语句可以编译过去,你可以看出来这句话有问题吗?