【发布时间】:2016-04-12 04:59:36
【问题描述】:
Kernighan 和 Ritchie 的 1.3 节使用以下温度转换程序来介绍 For 语句:
#include <stdio.h>
/* print Fahrenheit-Celsius table */
int main(){
int fahr;
for (fahr = 0; fahr <= 300; fahr = fahr + 20)
printf("%3d %6.1f\n", fahr, (5.0/9.0)*(fahr-32));
}
它没有解释的是这个程序如何使用一个 int 变量来生成浮点值而不会出错。是什么让这有效?不是方程中的所有变量都必须属于同一类型吗?在不理解这一点的情况下,我会犹豫继续前进。
【问题讨论】:
-
请谷歌搜索或在此处自行搜索。我相信这个问题已经有很多骗子已经有足够的解释了......
-
一句话,没有。它们不必是同一类型。可以进行隐式类型转换。
-
该语言允许大量隐式转换。见en.cppreference.com/w/cpp/language/implicit_cast。
-
K&R 的书很早就解释了类型转换,我似乎记得它甚至包括一个隐式转换如何发生的表格。有了这些信息,您应该能够自己解决问题
标签: c variables for-loop types type-conversion