使用由函数传递的数组。

时间:2015-07-29 13:08:42

标签: c++ arrays

// 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循环知道何时停止循环”获取其值的“大小”在哪里?

3 个答案:

答案 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);