考虑这样的数组:
[][][][][][]
每个括号对都是数组中的一个插槽(元素),您可以将信息放入其中的每个括号中。这几乎就像是并排有一组变量。
让我们看一下声明数组的语法。
int examplearray[100]; // This declares an array
这将形成一个具有100个插槽或位置(用于存储值)的整数数组(也称为元素)。要访问数组的特定部分元素,只需将数组名称以及括号中的索引号放进去。这对应于数组的特定元素。一个技巧是,第一个索引号(即第一个元素)为零,最后一个为元素数减一。例如,在100个元素的数组中为0-99。
您可以用这个简单的知识做什么?假设您要存储一个字符串,因为C没有用于字符串的内置数据类型,所以通常使用字符数组来模拟字符串。(C ++现在将字符串类型作为标准库的一部分。)
例如:
char astring[100];
将允许您声明一个由100个元素或插槽组成的char数组。然后,您可以从用户那里接收输入,如果用户键入了一个长字符串,则它将进入数组。整洁的是,以这种方式使用字符串非常容易,甚至还有一个名为cstring的头文件。关于字符串的使用还有另一课,因此在这里没有必要讨论。
数组最有用的方面是多维数组。我如何看待多维数组:
[][][][][]
[][][][][]
[][][][][]
[][][][][]
[][][][][]
这是我可视化二维数组时的外观的图形。
例如:
int twodimensionalarray[8][8];
声明一个具有两个维度的数组。将其视为棋盘。您可以轻松地使用它来存储有关某种游戏的信息或编写井字游戏。要访问它,您只需要两个变量,一个在第一个插槽中,另一个在第二个插槽中。您甚至可以制作一个三维数组,尽管您可能不需要。实际上,您可以制作一个四百维数组。但是,将其可视化会令人困惑。在大多数情况下,数组都像其他任何变量一样被对待。您可以通过以下方式修改其中的一个值:
arrayname[arrayindexnumber] = whatever;
或者,对于二维数组
arrayname[arrayindexnumber1][arrayindexnumber2] = whatever;
但是,切勿尝试写入超过数组最后一个元素的数据,例如当您拥有10个元素的数组时,并尝试写入[10]元素。为其分配的阵列的内存仅在内存中有十个位置,但是下一个位置可能是任何东西,这可能会导致计算机崩溃。
您会发现许多与数组有关的有用的东西,从用一个名称存储有关某些事物的信息到制作井字游戏等游戏。我有一个建议是在访问数组时使用循环。
#include <iostream>
using namespace std;
int main()
{
int x;
int y;
int array[8][8]; // Declares an array like a chessboard
for ( x = 0; x < 8; x++ ) {
for ( y = 0; y < 8; y++ )
array[x][y] = x * y; // Set each element to a value
}
cout<<"Array Indices:\n";
for ( x = 0; x < 8;x++ ) {
for ( y = 0; y < 8; y++ )
cout<<"["<<x<<"]["<<y<<"]="<< array[x][y] <<" ";
cout<<"\n";
}
cin.get();
}
在这里,您会看到循环效果很好,因为它们为您增加了变量,而您只需要增加1。这是最容易读取的循环,您可以访问整个数组。
当您想要一个指向字符串的指针时,数组不需要其他变量做的一件事就是引用运算符。例如:
char *ptr;
char str[40];
ptr = str; // Gives the memory address without a reference operator(&)
相对于
int *ptr;
int num;
ptr = # // Requires & to give the memory address to the ptr
原因是当将数组名称用作表达式时,它指向第一个元素的指针,而不是整个数组的指针。该规则引起很多混乱,有关更多信息,请参见我们的常见问题。
本文介绍了C语言中的数组基础知识,包括如何声明和访问数组,特别是强调了数组在存储字符串时的作用。还详细讲解了多维数组,如二维数组的声明和使用,以及如何通过循环遍历和修改数组元素。此外,提到了指针与数组的关系,并提醒了避免数组越界的注意事项。

被折叠的 条评论
为什么被折叠?



