// This program demonstrates an array being passed to a function
#include <iostream>
using namespace std;
void showValues(int [], int) ; //Function prototype.
int main()
{
const int ARRAY_SIZE = 8;
int number [ARRAY_SIZE] = {5, 10, 15, 20, 25, 30, 35, 40};
showValues (number, ARRAY_SIZE);
return 0;
}
//Definition of function showValue.
//This function accpets an array to integers and
//the array's size as its arguments. The contents.
//of the array are displayed.
void showValues (int nums[], int size)
{
for (int index = 0; index < size; index++)
cout << nums [index] << " ";
cout << endl;
}
使用C ++,学习数组,程序运行正常;我不理解底部的for循环,它表示“index&lt; size” 从“for循环知道何时停止循环”获取其值的“大小”在哪里?
答案 0 :(得分:3)
size
作为参数传递给函数showValues
。
从main()
调用该函数,将ARRAY_SIZE
作为该参数传递。
ARRAY_SIZE
定义为数组的大小。
实际上,你可以写
int number [] = {5, 10, 15, 20, 25, 30, 35, 40};
因为编译器可以从初始化数组中找出数组大小。函数调用可以重构为
showValues(number, sizeof(number) / sizeof(int));
sizeof(number) / sizeof(int)
是评估数组中元素数量的惯用方法。有些人喜欢sizeof(number) / sizeof(number[0])
,因为那时代码对数组的 type 不敏感。然后,您可以完全删除ARRAY_SIZE
。
答案 1 :(得分:1)
showValues (number, ARRAY_SIZE);
电话
将数组及其大小传递给void showValues (int nums[], int size)
因此for循环中的大小值为8
答案 2 :(得分:0)
void showValues (int nums[], int size)
函数showValues的第二个参数变为for循环中的大小。
const int ARRAY_SIZE = 8;
showValues (number, ARRAY_SIZE);