您的位置:首页 > 其它

为什么这个程序可以编过去?

2009-08-27 21:14 363 查看
#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); 这个语句可以编译过去,你可以看出来这句话有问题吗?
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐