【问题标题】:How do I send an array as function argument? [duplicate]如何将数组作为函数参数发送? [复制]
【发布时间】:2017-04-22 17:28:04
【问题描述】:

所以,我正在尝试使用数组在 C 中制作一个简单的程序。

int odd(int v1[],int n) {
    int v2[n];
    int i;
    for (i=0;i<n;i++) {
        if (v1[i]%2==0) {
            v2[i]=v1[i];
        }
        else {
            v2[i]=v1[i]*2;
        }
    }
    for (i=0;i<n;i++) {
        printf("Array %d",v2[i]);
    }
    return 0;
}

int main() {
    odd({1,2,3,4,5},5);
    return 0;
}

我在主函数中遇到错误(“预期表达式”),我不知道如何更正。

【问题讨论】:

  • 您需要使用数组调用odd{1,2,3,4,5} 不是数组。它只是一个list,不是表达式,只能用于初始化。

标签: c expression function-call


【解决方案1】:

类似的表达式

 {1,2,3,4,5}

不是一个数组,它自己。它是一个大括号括起来的列表,主要用于初始化目的。

如果你不想定义一个单独的数组变量,你需要使用compound literal。类似的东西

 odd((int[]){1,2,3,4,5},5);

会做的。

【讨论】:

  • 除此之外我们可以使用int a[]={1,2,3,4,5}; odd(a, 5);
猜你喜欢
  • 2020-11-28
  • 1970-01-01
  • 2021-07-07
  • 2018-01-08
  • 2011-12-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-08
相关资源
最近更新 更多