gpt4 book ai didi

c - C 中是否可以有匿名的临时数组?

转载 作者:行者123 更新时间:2023-11-30 16:45:02 24 4
gpt4 key购买 nike

是否可以用 C 创建匿名的临时数组?

例如,假设我有一个名为 processArray(int[] array) 的函数,它接受一个 int 数组作为参数,我可以通过以下方式向它传递一个匿名数组吗:

int main(){
processArray( (int[]){0, 1, 2, 3} ); //can I create this type of array?
return 0;
}

或者我是否必须事先声明数组(使用指针),然后将其指针传递给 processArray()?例如:

int main(){
int[] myArray = {0, 1, 2, 3};
processArray(myArray);
return 0;
}

最佳答案

使用C99和C11,你可以写你所写的内容,如下面的代码所示。这些是“复合文字”,在 ISO/IEC 9899:2011 §6.5.2.5 Compound literals 中进行了描述。 (与 ISO/IEC 9899:1999 中的同一部分相同)。

#include <stdio.h>

static void processArray(int n, int arr[])
{
for (int i = 0; i < n; i++)
printf(" %d", arr[i]);
putchar('\n');
}

int main(void)
{
processArray(4, (int[]){0, 1, 2, 3});
return 0;
}

运行时,它会产生答案:

 0 1 2 3

关于c - C 中是否可以有匿名的临时数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44247108/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com