Функции C ++, возвращающие массивы

Я новичок в C ++. Я привык к программированию на Java. Эта конкретная проблема вызывает у меня большие проблемы, потому что C ++ не работает как Java, когда имеет дело с массивами. В C ++ массивы - это просто указатели.

Но почему этот код:

#include <iostream>
#define SIZE 3
using namespace std;

void printArray(int*, int);
int * getArray();
int ctr = 0;

int main() {
  int * array = getArray();

  cout << endl << "Verifying 2" << endl;
  for (ctr = 0; ctr < SIZE; ctr++)
    cout << array[ctr] << endl;

  printArray(array, SIZE);
  return 0;
}

int * getArray() {
  int a[] = {1, 2, 3};
  cout << endl << "Verifying 1" << endl;
  for (ctr = 0; ctr < SIZE; ctr++)
    cout << a[ctr] << endl;
  return a;
}

void printArray(int array[], int sizer) {
  cout << endl << "Verifying 3" << endl;
  int ctr = 0;
  for (ctr = 0; ctr < sizer; ctr++) {
    cout << array[ctr] << endl;
  }
}

выведите произвольные значения для проверки 2 и проверки 3. Возможно, это как-то связано с тем, как массивы действительно обрабатываются как указатели.

Ответы на вопрос(3)

Ваш ответ на вопрос