首页 > 解决方案 > 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;

}

标签: c++

解决方案


目的是static_cast<int>什么?

static_cast 的目的是将一种类型的值显式转换为另一种类型。的目的static_cast<int>是转换为int类型。

例子中的值已经是int,所以转换是多余的,没有任何意义。

为什么我的代码有效

这是一个广泛的问题。如果它符合您的预期,并且没有未定义的行为,它就会起作用。

我们不知道您打算让程序做什么,但我可以说它的行为是明确定义的。


PSrand产生质量差的随机性。当需要这种质量时,不建议使用它。在这种情况下,<random>标题是更好的选择。

PPS 避免using namespace std


推荐阅读