为什么VC6.0下这条语句使得程序崩溃?

dongdandan 2013-05-29 08:46:41
int i;
float j;
scanf("%f",&i);
为什么VC6.0下这条语句使得程序崩溃?float和int 都是4个字节呀? 我认为只应该结果不对,而不应该程序崩溃
...全文
252 9 打赏 收藏 举报
写回复
9 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
max_min_ 2013-08-28
先确定是不是这里引起的程序崩溃点吧! 然后再看看scanf的实现吧
  • 打赏
  • 举报
回复
nextseconds 2013-08-28
代码写得规范些就是咯,整形就%d嘛,干嘛就喜欢用%f呢,没事找事做嘛
  • 打赏
  • 举报
回复
赵4老师 2013-05-31
汇编指令面前,了无秘密可言。
  • 打赏
  • 举报
回复
ForestDB 2013-05-30
要看完整的代码,不能断章取义。
  • 打赏
  • 举报
回复
AnYidan 2013-05-30
引用 楼主 dongdandan 的回复:
int i; float j; scanf("%f",&i); 为什么VC6.0下这条语句使得程序崩溃?float和int 都是4个字节呀? 我认为只应该结果不对,而不应该程序崩溃
正确的结果只有一个,错误的症状千奇百怪
  • 打赏
  • 举报
回复
xxevol 2013-05-30
估计你的vc6有问题?
  • 打赏
  • 举报
回复
xxevol 2013-05-30

 #include<stdio.h>
 int main()
 {
 int i;
  float j;
scanf("%f",&i);
}
运行正常呀 没有崩溃
  • 打赏
  • 举报
回复
赵4老师 2013-05-30
计算机组成原理→DOS命令→汇编语言→C语言(不包括C++)、代码书写规范→数据结构、编译原理、操作系统→计算机网络、数据库原理、正则表达式→其它语言(包括C++)、架构…… 对学习编程者的忠告: 眼过千遍不如手过一遍! 书看千行不如手敲一行! 手敲千行不如单步一行! 单步源代码千行不如单步对应汇编一行! 计算机组成原理→DOS命令→汇编语言→C语言(不包括C++)、代码书写规范→数据结构、编译原理、操作系统→计算机网络、数据库原理、正则表达式→其它语言(包括C++)、架构…… 对学习编程者的忠告: 眼过千遍不如手过一遍! 书看千行不如手敲一行! 手敲千行不如单步一行! 单步源代码千行不如单步对应汇编一行! VC调试时按Alt+8、Alt+7、Alt+6和Alt+5,打开汇编窗口、堆栈窗口、内存窗口和寄存器窗口看每句C对应的汇编、单步执行并观察相应堆栈、内存和寄存器变化,这样过一遍不就啥都明白了吗。 对VC来说,所谓‘调试时’就是编译连接通过以后,按F10或F11键单步执行一步以后的时候,或者在某行按F9设了断点后按F5执行停在该断点处的时候。 VC调试时在scanf前按F11键,或先按Alt+8再按F11键,就会来到scanf函数对应的源代码处。
  • 打赏
  • 举报
回复
turing-complete 2013-05-29
不知道,没看过scanf的源码。
引用 楼主 dongdandan 的回复:
int i; float j; scanf("%f",&i); 为什么VC6.0下这条语句使得程序崩溃?float和int 都是4个字节呀? 我认为只应该结果不对,而不应该程序崩溃
  • 打赏
  • 举报
回复
相关推荐
发帖
C语言
加入

6.6w+

社区成员

C语言相关问题讨论
申请成为版主
帖子事件
创建了帖子
2013-05-29 08:46
社区公告
暂无公告