我对以下代码的预期输出为" 1 -1 3 4 5 6"。
(arr[1]=2
应更改为arr[1]=-1
)。当我运行此代码时,
什么都没有改变,我无法理解为什么。
如果参数"寻找"会有什么不同?将被"发现"按价值而不是按参考来运作? 当我宣布"寻求"是一个值,程序没有运行(0xC0000005)......但为什么会这样呢?
#include <iostream>
int& find (int arr[], int size, int& seek)
{
for (int i; i<size; i++) {
if (arr[i]==seek) return arr[i];
}
return seek;
}
void print (int arr[], int size)
{
for (int i=0; i<size; i++) {
std::cout << arr[i] << " ";
}
std::cout << std::endl;
}
int main ()
{
int arr[]={1,2,3,4,5,6};
int size = sizeof arr / sizeof *arr;
int seek=2;
find (arr, size, seek) = -1;
print(arr, size);
return 0;
}
答案 0 :(得分:4)
for (int i; i<size; i++) {
您需要在此处初始化i
for (int i = 0; i<size; i++) {
至于第二部分 - 请参阅@Some程序员dude的评论