在C ++中努力改变数组中元素的值

时间:2017-12-06 16:07:35

标签: c++ arrays

我在此作业中的任务之一是将5添加到我的数组中的最大值。教授说使用void函数并传递一个值,我做了。程序增加5到最大值67,得到72.但是,当我打印数组时,它表示67在数组中它应该说72.有没有办法让它在主函数中说72,而不仅仅是在main函数中向元素67添加5,但是使用void increment(int y)?

这是我用来将最大值增加5的功能。

void incre(int y){
y+=5;
cout << "The new max after 5 is added is " << y << endl;

}

这是我用来打印数组的代码,输出

0 21

1 23

2 67

何时输出

0 21

1 23

2 72

cout << "Elements ------ Values\n";
for (int r = 0; r < array_size; r++){
cout << r << " ------------- " << A[r]<< endl;
}

另外,如何使用引用传递将数组传递给函数?我不确定我是否通过我的代码中的值传递或通过引用传递

void fill_array(int x[], int size){
cout << "Enter in the values 23, then 21 and then 67\n";
for (int z=0;z<size; z++) {
    cin >> x[z];
} }

在主要功能中我把

fill_array(A, array_size);

1 个答案:

答案 0 :(得分:1)

  

这是我用来将最大值增加5的功能。

参数通过值传递给函数。对其所做的任何更改仅影响参数的本地副本,而不影响调用函数中的变量。如果要查看调用函数中反映的更改,请将参数更改为引用参数。

//            |
//            v
void incre(int& y){
  y+=5;
  cout << "The new max after 5 is added is " << y << endl;
}