c语言

c语言数组形参怎么定义

小亿
269
2023-11-01 14:48:25
栏目: 编程语言

在C语言中,可以通过以下方式定义数组形参:

  1. 使用指针作为形参:传递数组的地址。定义数组形参时,可以使用指针类型声明,例如:

    void functionName(int *arr, int size) {
        // 函数体
    }
    

    在这种情况下,函数内部可以通过指针访问和修改数组的元素。

  2. 显式指定数组大小:传递数组的内容。定义数组形参时,可以使用具体的数组类型声明,配合指定的大小,例如:

    void functionName(int arr[], int size) {
        // 函数体
    }
    

    这种方式与第一种方式相似,只是不需要使用指针符号,而是直接使用数组类型声明。

需要注意的是,在函数调用时,传递给数组形参的实参必须是数组类型,不能是指针类型。比如,以下做法是错误的:

int main() {
    int *arr = malloc(sizeof(int) * 10); // 动态分配数组内存
    functionName(arr, 10); // 错误!arr是指针类型,而不是数组类型
    free(arr);
    return 0;
}

正确的做法是使用具体的数组类型:

int main() {
    int arr[10]; // 声明一个具有10个元素的数组
    functionName(arr, 10); // 正确!传递数组类型
    return 0;
}

0
看了该问题的人还看了