在下面的代码的最后一个“ 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,则为输出。
答案 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
数组的另一个元素,因此您会看到不同的值。