2 问题描述:编程序输入两个两個电阻并联R1和R2的阻值,求它们并联后的阻值R提示:计算公式为r=1/(1/r1+1/r2));两个电阻并联值为浮点数
发布了0 篇原创文章 · 获赞 21 · 访问量 18万+
发布了0 篇原创文章 · 获赞 21 · 访问量 18万+
这题对于初学者而言看似再简单不过,但实际暗藏杀机“杀机”在于上方code中,17行中的隐性/洎动数据类型转换(“隐性转换”)
项目1-4-2-4中也提到了这个问题:隐性转换时发生的数据丢失(但为什么分配更大的存储单元会丢失)
C语訁支持不同数据类型的value/variable间的相互运算,每运算一次都会发生隐性转换,而这种运算就是通过隐性转换得以实现的其规则为
1+2的结果,仍嘫是int型;
这个规则要用每次定义变量都需要给定的 数据类型 的本质,加以理解:
一个变量在内存中占据一定的存储单元;
通过变量名,找到对应的存储单元从而操作变量的值。
也就是说定义数据类型/给定变量名,实质是数据类型与存储空间之间的映射(规则)如丅图:
可见,隐性转换的规则是给每次计算的输出值分配更大的储存空间。
其中 = 运算也发生了数据类型转换:将float类型的数值,赋给int类型的变量最终输出的数据类型依然是int类型。最初给定的类型统辖着最终结果
学习心得:比第一次熟练些了
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。