私は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 の任意の値を出力します。おそらく、これは、配列が実際にポインターとして処理される方法と関係があります。