我是C++的新手,通过在线教学自学.今天我正在玩指针和不同的结果,只需要确认一些东西.基本上我知道指针是如何工作的.下面的图片是控制台中的简单代码和输出.
根据我的理解,第二个值2是存储在指针p1指向的元素中的值,因为输出是使用dereference运算符()的p1.
第一个值0x22ff1c,我只需要确认.我假设它是元素存储器中地址的值,因为输出是针对p1的,当然使用引用运算符/符号(&)指向[1]的地址.
我很确定我是从网上研究过的,但只需要有人直接向我确认.
所以我的问题基本上是:0x22ff1c确实是第二个元素的地址,如果没有,那么那个"看起来很滑稽"的值是什么呢?
#include <iostream>
int main()
{
int a[5] = {1,2,3,4,5};
int *p1;
p1 = &a[1];
std::cout << "Value1: " << p1 << "\n" << "Value2: " << *p1;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
输出:
Value1: 0x22ff1c
Value2: 2
Run Code Online (Sandbox Code Playgroud) 我是C++的新手.我基本上是自学.我遇到了一个我正在练习的Hangman游戏项目.我的问题是随机字生成.
我知道例如,int n=rand()% 10意味着生成0到10范围内的随机数.
现在在游戏中有一个包含10个单词的10个单词的数组.我感到困惑的是,如果从0到10的数字是随机生成的,那么这将是从11个随机数中选择的.但是,该数组只有10个元素(0-9).
当随机发生器选择10时会发生什么?元素10不存在于数组中,对吗?
那么这段代码应该int n=rand()% 9不是吗?
此外,在游戏中选择所有单词之前,是否可以重复相同的单词?那显然不是理想的.如果可以的话,我该如何防止这种情况?
c++ ×2