これは私が持っているものであり、それはいくつかの非常に奇妙な矛盾を引き起こしています。値渡しでも変数を変更する機能はありますか?
#include<iostream>
using namespace std;
void input_data(int data[], short size);
int main(){
short size;
int data[1000];
cout << "How many values would you like to store? ";
cin >> size;
while (size > 0){
cout << "Enter your " << size << " values:" << endl;
input_data(&data[1000], size);
cout << size << " values stored in array." << endl;
}
}
void input_data(int data[], short size)
{
int i;
for (i=0;i<size;i++){
cin >> data[i];
}
}
ので、このコードはかなりまっすぐ進むべきであるが、任意の時間は、私がsize
のための3以外の値を入力し、ラインcout << size << " values stored in array." << endl;
は言って終わる「0の値は、配列に格納さ。」
input_data
はsize
の値をどのように変更することができないのかよく分かりませんが、参考値ではなく値渡ししています。
はなぜでしょう、そして、より良いまだ、なぜそれが数3で作業しているのですか?
これについて考える: '&data [1000]'。 – juanchopanza
'input_data(&data [1000]、size);'私はこれがあなたが思うとは思わないと思います。あなたはあなたの本をもっと慎重に読むべきです。 –
*いいえはありません「私は唯一の参照によって配列を渡すよ」*私だけではない 'size'、参照によって配列を渡しているので、私はあなたが – greatj0b