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

Joã*_*ade 1 c

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

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

int main(){
    arraysomething({1.,2.});
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我到处寻找,却一无所获。

dbu*_*ush 5

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

arraysomething((double []){1.,2.});
Run Code Online (Sandbox Code Playgroud)

该语法看起来像数组或结构的初始值设定项,前面是对相关类型的强制转换。

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