更好地解释数组

时间:2013-05-26 23:55:22

标签: c++ arrays for-loop nested-loops

嗨,我一直在教自己C ++一段时间,并一直在数组部分。我还没有完全理解数组(和嵌套for循环),非常感谢一些帮助

1)如何

const int ROWS = 5;
const int COLUMNS = 3;
for (int i = 0; i < ROWS; ++i)

{
    for (int j = 0; j < COLUMNS; ++j)
            cout << i << "," << j << " ";
    cout << endl;
}

显示

0,0 0,1 0,2
1,0 1,1 1,2
2,0 2,1 2,2
3,0 3,1 3,2
4,0 4,1 4,2

在浏览代码的同时,它看起来它应该看起来更像

0,0 0,1 0,2 1,0 1,1 1,2 2,0 2,1 2,2 3,0 3,1 3,2 4,0 4,1 4,2

为什么在3组2?

之后自动创建一个新行?

2)我不知道迭代器是什么。我已经在矢量文件名中使用了它们,但我仍然不知道它们是什么以及它们如何更改数据

3)这些'[]'在这段代码中做了什么?

const int ROWS = 3;
    const int COLUMNS = 3;
    char board[ROWS][COLUMNS] = { {'O', 'X', 'O'},
                                   {' ', 'X', 'X'},
                                     {'X', 'O', 'O'} };
    cout << "Here's the Tic-Tac-Toe board:\n";
    for (int i = 0; i < ROWS; ++i)
    {
        for (int j = 0; j < COLUMNS; ++j)
            cout << board[i][j];
        cout << endl;
    }

更具体地说,是什么

[ROWS][COLUMNS] 

为什么他们属于那些盒子。以及如何

cout << board[i][j]

输出tic tac toe board。

我意识到这是一个很多要求,但我不知道我现在在书中编程是什么,并且非常感谢帮助

2 个答案:

答案 0 :(得分:0)

1)行“cout&lt;&lt; endl;”正在创建换行符。该行之前打印两个逗号分隔值i(这是第一个for循环的迭代)和j,第二个for循环的迭代。第二个循环是递增j直到j = COLUMNS(3)。因此,您将获得两个值的3个循环,然后是新行。然后由于第一个循环重复该过程,递增i直到它等于ROWS(5)。这就是你获得5行的原因。

2)在这种情况下,迭代器是i和j。它们是测量循环中位置的int变量,因为它们在每次循环操作时都会递增。

3)[]声明一个数组。例如

int myArray[3] 

创建一个具有三个整数空间的数组。

char board[ROWS][COLUMNS]

正在创建多维数组。所以你有一个在一个维度上长度为ROWS的数组,以及一个在另一个维度上长度为COLUMNS的数组。

然后,在你的循环中

cout << board[i][j]

打印出数组第一维中位置i的值和第二维中的位置j。

答案 1 :(得分:0)

是的,当你提出太多问题是因为你真的需要更多的基础。 我有一个简单的提示,你正在启动C ++。观看网络上最优秀的编程老师的这个播放列表:

http://www.youtube.com/course?list=ECAE85DE8440AA6B83

阅读书籍也很重要,但只要观看他的视频并复制他所做的事情,你就可以获得很多简单的信息。他还解释了他所做的一切,所以你不要感到困惑。