有没有办法在C中的函数参数内定义数组?像这样:
void arraysomething(double vec[2]){
//do something...
}
int main(){
arraysomething({1.,2.});
return 0;
}
我搜遍了整个地方但一无所获。
答案 0 :(得分:4)
您正在寻找的内容称为复合文字:
arraysomething((double []){1.,2.});
语法看起来像一个数组或结构的初始值设定项,其前面是对所讨论类型的强制转换。
因为你想传入数组,所给出的类型名应该是double []
,这意味着一个未指定大小的数组。实际大小不是必需的,因为它是从文字中的元素数量推断出来的。