`

C语言功底还是要加深纳(自我提醒一下)

 
阅读更多

今天逛论坛有道题目:

printf("%f",10/3); 答案是多少?

结果为什么是:0.000000

自己试验了一下,结果果然如此,只要后面参数是int类型结果都是0.000000。

要想得到正确结果,必须:

printf("%f",(float)10/3); 

或者:

printf("%f",10/3.0); 

找不到根本原因,后来看到一位兄弟的解释,豁然开朗,真是佩服。C语言博大精深,指针真是精髓。

这位仁兄解释如下:

原因在于printf,printf不会关心你输入的参数的类型,你输入的实际是
printf("%f",3),但是这个整型3不会被隐式类型转换为浮点型,而是被直接按内存内容当作浮点型

也就是说,内部使用等价于
int i = 3;
printf("%f", *(float*)&i)

不幸的是,整型3在内存布局上如果看成浮点数,它就是接近于0

这是不定参数的特点,没有类型检查,没有类型转换




分享到:
评论

相关推荐

    C语言最好的十道题(可以测出你对C语言的功底)

    C语言是计算机编程的基础,它以其简洁高效的特点深受程序员喜爱。以下是对“C语言最好的十道题”的解析,这些题目涵盖了C语言的核心概念和技术,帮助评估个人对C语言的掌握程度。 1. **指针与内存管理**: 指针是...

    嵌入式C语言自我修养:从芯片、编译器到操作系统.docx

    嵌入式C语言自我修养:从芯片、编译器到操作系统 嵌入式系统的概念和重要性: 1. 嵌入式系统是一种嵌入到特定设备中的软件系统,能够控制和管理该设备的一种或多种功能。 2. 嵌入式系统广泛应用于工业控制、航空...

    C语言课程设计记事提醒闹钟

    C语言 课程设计 记事 提醒闹钟 代码及论文 题目4:记事提醒小软件 1、题目描述 设计一个记事提醒小软件,该程序具有以下功能: (1)录入需要提醒的事件(事件信息包括的内容:事件标题、事件内容、提醒时间、...

    用C语言实现的记事提醒程序

    本程序使用C语言实现记事提醒功能,主要功能为记录并提醒使用者的待办事件,用户可自己设定提醒时间、提醒次数以及提醒间隔时间。当事件到达某一时间预先设定的时间时,软件会在屏幕上显示提醒的事件,并发出响声...

    c语言小游戏c语言项目源码大全合集(60例).zip

    c语言小游戏c语言项目源码大全合集(60例): c语言24点游戏源码 c语言Turbo C下写的俄罗斯方块 c语言UDP传输系统源码 c语言万年历源码 c语言五子棋源码 c语言俄罗斯方块 c语言做的一个任务管理器 c语言做的播放器...

    C语言嵌入式.pdf.zip

    《C语言嵌入式.pdf》是一份专注于C语言在嵌入式系统开发中的应用的资料,对于想要深入了解嵌入式领域的读者来说,是一份非常有价值的参考资料。C语言因其高效、灵活和对硬件底层的直接控制能力,成为嵌入式开发的...

    C语言期末大作业-C语言小游戏28个

    c语言种地要浇水游戏源码 c语言自创军旗游戏源码 c语言自创推箱子游戏改版 c语言贪吃蛇游戏的双人对战版 c语言连连看游戏源码 c语言配有图片和音乐的打字母游戏 c语言青蛙过河小游戏 c语言黑白棋游戏源码 纯c语言...

    C语言:从为什么要学C语言到文件操作

    随着对C语言的理解加深,可以逐渐接触更高级的主题,如指针、结构体、内存管理等。实践是学习的关键,通过编写小程序和解决实际问题,能够更快地掌握C语言。 总的来说,C语言的学习是一个逐步深入的过程,它不仅...

    闹钟程序,c语言,定时提醒(带源代码)

    在IT领域,编程是创造各种应用的基础,C语言作为一种经典的编程语言,因其高效和灵活性而被广泛应用。本文将深入探讨如何使用C语言...通过这种方式,不仅可以学会编写闹钟程序,还能加深对C语言和系统级编程的理解。

    c程序c语言c语言c语言c语言c语言c语言

    c语言c语言c语言c语言c语言c语言c语言c语言c语言c语言c语言c语言c语言c语言c语言c语言c语言c语言c语言c语言c语言c语言c语言c语言c语言c语言c语言c语言

    C语言期末大作业33个C语言系统,游戏,炫酷特效页面

    期末大作业-33个C语言程序(免积分下载),程序内容如下所示: c语言火车票订票管理源码 c语言电子时钟程序 C语言超市管理系统 c语言通讯录管理系统源码 c语言商品销售系统源码(用不了那么多可以和别人一起入手) ...

    C语言题库 C语言题库 C语言题库

    C语言题库 C语言题库 C语言题库 C语言题库 C语言题库 C语言题库 C语言题库

    嵌入式C语言精华+.pdf

    宋宝华嵌入式 C/C++语言精华文章集锦 C/C+语言 struct 深层探索 ............................................................................2 C++中 extern "C"含义深层探索.....................................

    单片机C语言(单片机C语言)

    单片机C语言单片机C语言单片机C语言单片机C语言单片机C语言单片机C语言单片机C语言单片机C语言单片机C语言单片机C语言单片机C语言单片机C语言单片机C语言单片机C语言

    闹钟程序,c语言,定时提醒

    【标题】:“闹钟程序,c语言,定时提醒”揭示了这个项目的核心是使用C语言编写的一个简单闹钟程序,其主要功能是提供定时提醒服务。C语言是一种基础且广泛使用的编程语言,常用于系统级编程和开发各种软件,包括...

    DMA传输的C语言实现

    DMA传输的C语言实现DMA传输的C语言实现DMA传输的C语言实现DMA传输的C语言实现DMA传输的C语言实现DMA传输的C语言实现DMA传输的C语言实现DMA传输的C语言实现DMA传输的C语言实现DMA传输的C语言实现DMA传输的C语言实现...

    C语言烟花代码C语言烟花代码

    C语言烟花代码C语言烟花代码C语言烟花代码C语言烟花代码C语言烟花代码C语言烟花代码C语言烟花代码C语言烟花代码C语言烟花代码C语言烟花代码C语言烟花代码C语言烟花代码C语言烟花代码C语言烟花代码C语言烟花代码C语言...

    c语言项目源码大全.rar

    c语言种地要浇水游戏源码 c语言自创军旗游戏源码 c语言自创推箱子游戏改版 c语言贪吃蛇游戏的双人对战版 c语言连连看游戏源码 c语言青蛙过河小游戏 c语言黑白棋ai游戏源码 纯c语言迷宫源码 c语言对对碰游戏源码 ...

    怎样学好C语言 C语言学习必备

    对于初学者,每学完一个章节,都要尝试理解并重写其中的示例程序,通过实践来加深理解。 3. **进阶提升**:编程的高境界在于掌握数据结构和算法。数据结构是组织和存储数据的方式,而算法则是解决问题的方法。熟练...

    C语言编程规范 C语言编程规范C语言编程规范

    C语言编程规范C语言编程规范C语言编程规范C语言编程规范C语言编程规范C语言编程规范C语言编程规范C语言编程规范C语言编程规范C语言编程规范C语言编程规范C语言编程规范C语言编程规范C语言编程规范C语言编程规范C语言...

Global site tag (gtag.js) - Google Analytics