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

dongdandan 2013-05-29 08:46:41
int i;
float j;
scanf("%f",&i);
为什么VC6.0下这条语句使得程序崩溃?float和int 都是4个字节呀? 我认为只应该结果不对,而不应该程序崩溃
...全文
277 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
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个字节呀? 我认为只应该结果不对,而不应该程序崩溃

70,024

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧