C - 函数(假设a和n是参数,其中a是int值的数组,n是数组的长度。)

问题描述 投票:-3回答:2

我是编程的新手,我真的不明白这个问题。你们当中有些人可以举例说明这意味着什么。如何编写一个函数,其中a是int值,n是长度?

我糊涂了...

c
2个回答
1
投票

我不确定你的问题是什么,因为你没有提供太多信息。但是,C中的函数定义如下:

return_type function_name( parameter list ) {
    body of the function
}

所以,对于这种情况,我们可以说:

void arrayFunction( int a[], int n){
    //do whatever you need to do with the function here
}

这可能对你有所帮助。


0
投票

假设您有一个int数组,如下所示:

int arr[] = {2,3,4,5,6};

你可以看到数组arr里面有5个元素。你可以数数吧。但是当你将上面的arr传递给函数时,该函数不知道arr包含多少元素。请参阅下面(不正确的)代码段:

#include <stdio.h>

void display(int arr[]){

}

int main(void) {
    int arr[] = {2,3,4,5,6};

    display(arr);
    return 0;
}

名为'display()'的函数不知道arr有多少元素

因此,您需要传递额外的参数(名为'n'的额外参数)来告诉关于arr中元素数量的被调用函数。你需要单独告诉它 - arr的长度。

现在这变成了 - 正如你在你的问题中所说的那样 - arr是int值而n是长度

以下是正确的代码:

#include <stdio.h>

void display(int a[], int n){
    //Now display knows about lenth of elemnts in array 'a'
    // Length is 5 in this case
}

int main(void) {
    int arr[] = {2,3,4,5,6};
    display(arr, 5);
    return 0;
}

现在,名为'display()'的函数知道int数组的长度。这是您在指定数组及其长度时编写代码的方式。

更正式地说,这是因为在传递数组时,它会衰减到指针,因此需要同时传递它的长度。

© www.soinside.com 2019 - 2024. All rights reserved.