将大小转换为整数有什么问题?

What is wrong with converting size to int?

本文关键字:什么 问题 整数 转换      更新时间:2023-10-16

是否应该避免以下转换,出于什么原因?

int arr[] = { 10, 20, 30 };
for (int i = 0; i < static_cast<int>(size(arr)); ++i) // std::size() from C++17
cout << arr[i];

将大小转换为 int 有什么问题?

当利息值较小时没有问题,例如3。

当要转换为int的值大于int可以容纳的值时,转换后的值将不正确。C++让你在决心这样做的情况下射中你的脚。你只需要知道你什么时候有这样做的危险,并为后果做好准备。

话虽如此,最好坚持使用不需要强制转换的代码。

for (std::size_t i = 0;  ... )

您必须有一个非常令人信服的理由来使用int而不是std::size_t.