小编Ash*_*rse的帖子

在处理指针时,在控制台中为*p1和p输出不同值的含义

我是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++

1
推荐指数
1
解决办法
136
查看次数

应用于单词数组的随机数范围

我是C++的新手.我基本上是自学.我遇到了一个我正在练习的Hangman游戏项目.我的问题是随机字生成.

我知道例如,int n=rand()% 10意味着生成0到10范围内的随机数.

现在在游戏中有一个包含10个单词的10个单词的数组.我感到困惑的是,如果从0到10的数字是随机生成的,那么这将是从11个随机数中选择的.但是,该数组只有10个元素(0-9).

当随机发生器选择10时会发生什么?元素10不存在于数组中,对吗?
那么这段代码应该int n=rand()% 9不是吗?

此外,在游戏中选择所有单词之前,是否可以重复相同的单词?那显然不是理想的.如果可以的话,我该如何防止这种情况?

c++

0
推荐指数
1
解决办法
117
查看次数

标签 统计

c++ ×2