-2
這就是我所擁有的,它造成了一些非常奇怪的差異。函數更改變量,即使按值傳遞?
#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];
}
}
所以這個代碼應該是相當直接的,但任何時候我進入比3 size
以外的值,該行cout << size << " values stored in array." << endl;
結束說:「存儲在陣列0值。」
我不明白可能會如何更改size
的值,因爲我是通過值傳遞的,而不是通過引用。
爲什麼會發生這種情況,更好的是,爲什麼它會與數字3一起工作?
想一想:'&data [1000]'。 – juanchopanza
'input_data(&data [1000],size);'我認爲這不會影響你的想法。你應該更仔細地閱讀你的書。 –
我只是通過引用傳遞數組,而不是'size',所以我不知道你在 – greatj0b