是否可以将 "on the fly" 数组传递给 C 函数?

Is it possible to pass an "on the fly" array to a C function?

在 Fortran 中,可以将动态构建的数组传递给子例程:

call sub_that_wants_3_elm_array((/1,2,3/),output_arg)

是否可以在 C 中做类似的事情?这看起来非常基础,但我无法找到任何关于此的内容,是或否。

是的。可以使用 复合文字(自 C99 起)。

例如

#include <stdio.h>

void fun(int *a)
{
    printf("%d\n", a[2]); //prints 72
}

int main(void)
{
    fun((int[]){1, 99, 72});
}

您还可以从链接中找到更多示例:

  1. The New C: Compound Literals
  2. Compound Literals - gcc