首页 > 解决方案 > 为什么 for 循环不增加?

问题描述

为什么我的 for 循环不增加?整数“i”不会以某种方式递增,这会导致数组的第一个位置被打印出来。

我执行以下操作:


int* values = new int[10] {};

int& half(int* arr[]){

  //Here, the "i" doesn't increment  

  for(int i = 0; i < 10; i++){
      return *arr[i];
  }
}

int main(){
   int& a = half(&values);
   std::cout << a << std::endl;

   delete[] values;
   return 0;
}

标签: c++arraysstackheap-memory

解决方案


return语句使函数立即以指定的值退出。结果,当您执行语句时

return *arr[i];

在循环内部,函数将停止运行并返回指示值。这意味着循环不能多次执行,因为它会在第一次迭代后停止运行。


推荐阅读