c++ - static_cast 的目的是什么?
问题描述
所以我必须对随机数做一些研究,我看了一些教程并阅读了一点如何做,然后做了这个代码,但我没有完全理解,所以我想知道为什么我的代码可以工作以及 static_cast 的目的是什么。
#include<iostream>
#include<cstdlib>
#include<ctime>
using namespace std;
int main(){
srand(time (0));
cout<<60+rand()%static_cast<int>(140-60+1)<<endl;
}
解决方案
目的是
static_cast<int>
什么?
static_cast 的目的是将一种类型的值显式转换为另一种类型。的目的static_cast<int>
是转换为int类型。
例子中的值已经是int,所以转换是多余的,没有任何意义。
为什么我的代码有效
这是一个广泛的问题。如果它符合您的预期,并且没有未定义的行为,它就会起作用。
我们不知道您打算让程序做什么,但我可以说它的行为是明确定义的。
PSrand
产生质量差的随机性。当需要这种质量时,不建议使用它。在这种情况下,<random>
标题是更好的选择。
PPS 避免using namespace std
。
推荐阅读
- python - 如何通过 openpyxl 将整个工作表导入列表
- linux - 我的 Nvidia 驱动程序不用于 OpenGL 渲染?
- typescript - 为什么我的 Jest Function Mock 会影响另一个测试
- c++ - C++,sqlite3. BLOB字段作为查询条件如何处理?
- php - 贝宝订阅:结账时未显示费用?
- visual-studio - Visual Studio C++ 程序集 | 括号的含义?
- .net - 如何在多个服务器中使用相同的域(www.example.com)?
- shell - 使用电子邮件 ID 向用户发送通知的 Shell 脚本从数据库中获取它
- python-3.x - PySerial 写入未按预期工作
- selenium-webdriver - 由于动态定位器,无法在 Salesforce Lightning 中找到 xpath