数组索引混淆

时间:2015-04-14 00:55:46

标签: c

有人可以向我解释它是如何显示x [2]的值的吗? 当数组索引是x [4]时。

Array x 
{
x[0] x[1] x[2] x[3] x[4] x[5] x[6] x[7]
16.0 12.0 6.0 8.0 2.5 12.0 14.0 –54.5
printf("%.1f", x[(int)x[4]]); Displays 6.0 (value of x[2])
}

1 个答案:

答案 0 :(得分:0)

x [4]的值为2.5,当前缀为“(int)”时,会发生的事情是将结果值“转换”为整数,从而丢弃小数部分而不对其进行任何舍入。这称为“类型转换”或从一种数据类型转换为另一种数据类型。在这种情况下,“float”中的x [4]的值被转换为整数。

等式将变为: x [(int)x [4]] = x [2] = 6.0