C语言用数组表示法传递一维数组

下面的例子将一个整数数组及其长度传递给函数,并打印其内容:

void displayArray(int arr[], int size) {
    for (int i = 0; i < size; i++) {
        printf("%d\n", arr[i]);
    }
}

    int vector[5] = {1, 2, 3, 4, 5};
    displayArray(vector, 5);

这段代码的输出是数字1到5,我们给函数传递5来表明数组长度。也可以传递任意正数,不管这个长度是否正确,函数都会试图打印相应数量的元素。尝试越过数组边界寻址可能会导致程序终止。本例的内存分配如图4-8所示。

使用数组表示法

警告 为确定数组的元素数量对数组使用sizeof操作符是一种常见的错误,如下所示。4.1.1节中已经解释过了,这样获取长度是不对的。在这种情况下,我们给函数传递的是20。

displayArray(arr, sizeof(arr));

还有一种情况比较常见:传递的元素数量比数组中实际的元素数量少,这样可以处理数组的一部分。比如说,假设我们读入一系列年龄并放进数组,但没有占满数组,此时如果调用sort函数来排序,我们希望只对有效的年龄进行排序,而不是数组的所有元素。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程