在C中的函数参数内定义一个数组

时间:2018-06-11 19:11:13

标签: c

有没有办法在C中的函数参数内定义数组?像这样:

void arraysomething(double vec[2]){
    //do something...
}

int main(){
    arraysomething({1.,2.});
    return 0;
}

我搜遍了整个地方但一无所获。

1 个答案:

答案 0 :(得分:4)

您正在寻找的内容称为复合文字

arraysomething((double []){1.,2.});

语法看起来像一个数组或结构的初始值设定项,其前面是对所讨论类型的强制转换。

因为你想传入数组,所给出的类型名应该是double [],这意味着一个未指定大小的数组。实际大小不是必需的,因为它是从文字中的元素数量推断出来的。