慕哥1510327
2016-03-07 20:01
void replaceMax(int arr[],int value) { int max = arr[0]; int index = 0; int i; for(i=1;i<5;i++) { if(arr[i]>max) { max = arr[i]; //将数组中较大的数赋值给max index = i; //记录当前索引 } } arr[index] = value; }
在replaceMax 函数中 ,不是应该要 return 一个数组或者 arr[1]吗?
如果不return 的话 为什么 main 函数中的 arr1[1] 的值改变了 ?
我想问的关键在于 return ,为什么没有return。
这个题目不需要返还数值,因为函数对数组的操作实质上是通过指针完成的,数组传值实际上是传递的数组的首地址,也就是说,函数和main函数中的数组是同一个数组,所以在replaceMax中对元素值的改变会直接影响main函数。
replaceMax 函数类型为void, 可以没有return;
传递给replaceMax 函数的数组arr是全局变量, 所以在replaceMax 函数里面是能改变它的元素值的.
C语言入门
926206 学习 · 20797 问题
相似问题