gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-29 16:29:40 27 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/14669412/

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