Плавание может оценить использоваться в качестве индекса массива? Что произойдет, если выражение, используемое в качестве индекса, закончилось к значению плавающему?
Значение с плавающей запятой будет преобразовано в int (оно может выдавать предупреждение или ошибку в зависимости от уровня предупреждения компилятора)
s1 = q[12.2]; // same as q[12]
s2 = q[12.999999]; // same as q[12]
s3 = q[12.1/6.2]; // same as q[1]
Да. Но это бессмысленно. Значение с плавающей запятой будет усечено до целого числа.
(Однако вы можете использовать std :: map
, но в большинстве случаев вы упускаете предполагаемые значения из-за неточности.)
Массив C ++ - это непрерывная последовательность ячеек памяти. a [x]
означает «x-я ячейка памяти после той, на которую указывает a
».
Что означало бы получить доступ к 12,4-му объекту в последовательности?