我想了解在使用浮点值对数组进行索引时会发生什么。C++ - 当您通过浮点数组索引数据会发生什么?
此链接:Float Values as an index in an Array in C++
不回答我的问题,因为它指出了浮动应四舍五入到整数。然而,在我试图评估的代码,这个答案是没有意义的,因为该指数值将永远只能是0或1
我试图解决张贴任天堂编码的挑战。为了解决这个问题,存在一个陈旧的陈述,它使用一个长而复杂的按位表达式来按位分配到一个数组中。
阵列被声明为指针
unsigned int* b = new unsigned int[size/16]; // <- output tab
然后它分配0的每个元素
for (int i = 0; i < size/16; i++) { // Write size/16 zeros to b
b[i] = 0;
}
这里的语句的开头。
b[(i + j)/32] ^= // some crazy bitwise expression
嵌套的内部上面的位于for循环。
我在这里节约了大量的代码,因为我想尽可能多的这个问题的解决我自己的地。但我想知道是否有这种情况,你是否想要像这样迭代数组。
必须有比浮动只是自动转换成一整型更多的东西。这里还有更多的事情要做。
A [数字转换(http://en.cppreference.com/w/cpp/language/implicit_cast#Numeric_conversions)发生,从浮点型到整型。 –
不是'int/16'仍然是'int',而不是'float'。 – Jarod42
@JoachimPileborg发生编译错误 –