这是什么语法? (C中变量类型的括号)

时间:2019-03-19 12:46:09

标签: c

我了解这段代码产生的内容,但我不知道它是什么样的语法(或函数)。

代码

void main()
{
    float af;
    int a = 75;
    int cov = 100;

    af = a/cov;
    printf("af: %f\n", af);
    af = (float) a/(float) cov;
    printf("af: %f\n", af);
}

输出

af: 0.000000
af: 0.750000

如果没有两个(float)前面的int,它将完成整数之间的除法(因此返回0.0),然后将其转换为float,而使用{ {1}}似乎暂时将(float)a转换为浮点,然后执行除法。

cov格式是什么?

4 个答案:

答案 0 :(得分:2)

它称为 typecast ,或简称为 cast 。语法为:

(type) expression

它的作用与您已经推断的完全一样:它的计算结果为expression,转换为给定的type

答案 1 :(得分:0)

类型转换是一种将变量从一种数据类型转换为另一种数据类型的方法。

(type_name) expression

另一种方法是

float af;
int a = 75;
float cov = 100.0;

af = a/cov;
printf("af: %f\n", af);

结果将是浮点数。

答案 2 :(得分:-1)

这是类型转换。将类型放在表达式之前的括号中会将表达式转换为该类型。例如,

(int) 1.0; // gives 1

答案 3 :(得分:-1)

af = a/cov;

整数除法75/100 = 0
这意味着在float-> 0.0

af = (float) a/(float) cov;

typcast 75浮动-> 75.0
将版式100转换为扁平-> 100.0
  浮动除法75.0 / 100.0-> 0.75