我已经编写了近二十年的C和C++代码,但这些语言的一个方面我从未真正理解过.我显然使用常规演员表,即
MyClass *m = (MyClass *)ptr;
Run Code Online (Sandbox Code Playgroud)
到处都是,但似乎有两种其他类型的演员,我不知道其中的区别.以下代码行之间有什么区别?
MyClass *m = (MyClass *)ptr;
MyClass *m = static_cast<MyClass *>(ptr);
MyClass *m = dynamic_cast<MyClass *>(ptr);
Run Code Online (Sandbox Code Playgroud) 这是我第一次用C语言尝试随机数(我想念C#).这是我的代码:
int i, j = 0;
for(i = 0; i <= 10; i++) {
j = rand();
printf("j = %d\n", j);
}
Run Code Online (Sandbox Code Playgroud)
使用此代码,每次运行代码时都会得到相同的序列.但是如果我srand(/*somevalue/*)在for循环之前添加,它会生成不同的随机序列.有谁能解释为什么?