为什么for循环不递增?

-3 c++ arrays heap stack

为什么我的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;
}
Run Code Online (Sandbox Code Playgroud)

tem*_*def 5

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

return *arr[i];
Run Code Online (Sandbox Code Playgroud)

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