我不明白这一点,它所说的部分,“myArray [x] = 42;” 从什么时候开始进入myArray?至少有人解释我这个脚本是如何工作的?
{ int = myArray[5];
for (int x = 0; x < 5; x++) {
myArray[x] = 42;
cout << x << ":" << myArray[x] << endl;
}
}
答案 0 :(得分:1)
C ++数组是随机访问容器。这意味着如果你想要数组的i
元素,你可以要求它(并在恒定时间内得到它)。
用于数组元素访问的运算符是括号([]
)运算符。它需要一个std::size_t
类型的参数,它是某个无符号整数类型的typedef
,它足以索引计算机RAM的所有内存地址。因此,如果我有一个数组arr
,并通过编写arr[2]
将其编入索引,我就要求数组的第二个元素。
在下面的示例中,创建了一个数组,并为每个元素分配了一个等于其索引平方的值。
#include <cstdlib>
#include <iostream>
int main() {
constexpr std::size_t length = 10;
int arr[length];
for (std::size_t i = 0; i < length; ++i) {
arr[i] = i * i;
std::cout << "Element " << i << " of arr is " << arr[i] << "." << std::endl;
}
}
由于operator[]
返回引用(在本例中为int&
),因此表达式arr[i]
可用于读取和写入值。
答案 1 :(得分:0)
我将在这里具体说明,你需要阅读c ++中的基本编程,因为你质疑c ++中for循环的基本方法。
我将从格式化代码开始,以便更容易阅读:
{
int = myArray[5];
for (int x = 0; x < 5; x++)
{
myArray[x] = 42;
cout << x << ":" << myArray[x] << endl;
}
}
让我指出代码中的一些错误。首先,当您在c ++中声明变量时,还必须声明其数据类型。以下示例如下:
var = 2;
无效,因为未指定变量 var 的数据类型。编译器无法通过查看c ++中传递给它的值来判断变量的数据类型。因此,我们需要在仅对DCLARING它时在变量名称之前添加数据类型。所以在上面的例子中:
int var = 2;
是一个有效的变量声明,因为我们已经指定此变量只存储一个int值。
现在您的代码中的问题是您正在尝试执行此操作:
int = myArray[5];
这没有任何意义。第一个问题是您尝试为数据类型分配值,就好像它是变量一样。第二个问题是你以前从未申报过myArray。从你的鳕鱼,我假设你打算这样做:
int myArray[5];
这是有道理的,因为你的for循环也运行了5次。在这一行中,您声明了一个名为myArray的数组,它存储了5个int类型的值。
现在转向for循环。让我们剖析for循环的头语句:
for (int x = 0; x < 5; x++)
开头分号int x = 0;
之后的第一个语句只是为for循环的整个运行声明了一个变量ONCE。这个变量x是for循环的局部变量,不能在它外部访问。在c ++中,我们将它称为计数器变量,因为它存储了我们通过for循环循环的次数。
下一个语句x < 5;
是for循环的条件。当这个条件成立时,for循环将运行;在你的情况下,当x小于5时,它将贯穿循环。一旦这种情况变得虚假;在此代码中,如果x变为等于或大于5,则条件被伪造,并且循环终止。这样,我们确保循环仅在我们的代码中运行我们想要它的次数。
最终语句x++;
仅表示x在每个点都递增。如果它没有递增,那么x的值将永远不会改变,并且循环的条件永远不会被伪造,使其成为无限循环。因此,这种说法至关重要。
现在我们在for循环中,我们可以使用变量x。这对你的情况特别有用,因为你有一个数组,并且你正试图用值来填充它。而不是做数组[a] = n,其中范围从0到数组的大小减1,n是随机数,我们可以使用for循环来初始化我们的值。
在for循环中,我们如何做到这一点?我们使用计数器x,它在每次循环运行后递增,用作数组[a]中的“a”。这就是为什么我们使用myArray[x] = 42;
,因为x在每个循环之后将自身增加1,并且这个数字可以用作数组的地址(对于我这里糟糕的选择而言)。为什么分配数字42是随机的;它可以分配任何数字。
如果您仍需要澄清,或者我在帖子中犯了错误,请在评论栏中告诉我。