last for循环中tem分配的影响

时间:2019-07-18 05:42:33

标签: c++

在下面的代码的最后一个“ for”循环中,我期望在最后一个“ for”循环上方以及在最后一个“ for”循环内分配“ tem”时得到相同的输出。但是输出是不同的。谁能解释为什么?

我尝试在while和for循环之间以及最后一个for循环内分配tem。

prerender

如果tem的分配在内部 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 我期望 13 14 15 16 12 8 4 3 2 1 5 9 7 6 10 11 如果我在while和for循环之间分配tem,则为输出。

1 个答案:

答案 0 :(得分:0)

在此代码中

for (int i=0; i<r*l; i++)
{
    tem = temp;
    cout<< *tem << " ";
    tem++;
}

tem指向temp数组每次循环的开始。因为在打印tem的值时temp总是指向*tem数组的开头,所以总是看到相同的值输出。

但是在此代码中

tem = temp;
for (int i=0; i<r*l; i++)
{
    cout << *tem <<" ";
    tem++;
}

tem被分配给temp数组的开始,仅在循环之前一次。然后在循环中tem递增,使其指向temp数组的下一个元素。因此,由于每次循环时tem都指向temp数组的另一个元素,因此您会看到不同的值。