我正在学习 C++,但我并不完全理解使用指针的机制。
如何在这段代码中使用指针填充数组 tab2:
int * tab1 = new int[10];
int * tab2 = new int[10];
for (int i = 0; i < 10; i++){
tab1[i] = i;
*tab2 = i;
tab2++;
}
for (int i = 0; i < 10; i++){
std::cout << tab1[i] << "\t" << tab2[i] << std::endl;
}
我学校的老师没有解释清楚,我不明白如何使用指针调整数组元素并将新值放入其中。 请帮助我理解一个正确工作的示例。
最佳答案
当您执行 tab2++
时,您会丢失原始指针。
因为 tab1
和 tab2
都是指针,所以你已经在用指针来做这件事了。事实:像 tab1[i]
这样的表达式与 *(tab1 + i)
完全相同(这对任何指针都有效 或数组)。
如果你的老师要你使用increment,那么使用你增加的另一个指针变量。喜欢
int * tab3 = tab2;
for (...) { ...; *tab3++ = i; }
现在您仍然可以毫无问题地使用 tab2
。
关于C++ - 如何使用指针填充数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48953339/