C++ - 如何使用指针填充数组?

标签 c++

我正在学习 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++ 时,您会丢失原始指针。

因为 tab1tab2 都是指针,所以你已经在用指针来做这件事了。事实:像 tab1[i] 这样的表达式与 *(tab1 + i) 完全相同(这对任何指针都有效 数组)。

如果你的老师要你使用increment,那么使用你增加的另一个指针变量。喜欢

int * tab3 = tab2;
for (...) { ...; *tab3++ = i; }

现在您仍然可以毫无问题地使用 tab2

关于C++ - 如何使用指针填充数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48953339/

相关文章:

c++ - 可以在类中使用 fstream 对象吗?

c++ - 我应该如何计算我的枚举?

c++有没有一种方法可以在不中断他的工作的情况下有效地与线程通信

c++ - 如何清除 C++ 数组?

C++ - 转换 std::basic_string<char>

c++ - 每次在 Visual Studio 2015 中编译项目时是否都必须链接 .lib 文件?

c++ - 如何从其他类调用函数指针

c++ - 部分解码h264流

c++ - 有没有一种方法可以声明复制构造函数是非公开的并使用默认复制构造函数?

c++ - 模板化类型的模板特化