c - 将数组传递给函数而无需事先显式声明数组

标签 c arrays

我有这个函数,我调用了很多次:

void shifter(int [])
{
//...
}

我想用一个动态分配的数组来调用它,比如:

shifter({1,2,3,0});

我知道上面的例子行不通。是否有一种语法可以让我不必在每次调用函数时都显式声明数组?

这是 C,不是 C++。

最佳答案

使用Compound Literals (在 C99+ 中可用):

shifter( (int []){1,2,3,0} );

注意:GCC 和 clang 都支持它作为 C90 模式下的扩展。

关于c - 将数组传递给函数而无需事先显式声明数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36113265/

相关文章:

c - 使用客户端服务器文本聊天提供音频支持

php - 在 JQuery 脚本中传递数组

javascript - 将数组中的元素分配给每个表格单元格

c - 从 C 中的数组堆栈中弹出 - 将 NULL 分配给 int *

C++ - 将数组传递给方法

c++ - 如何每天只运行一次 if 语句,如果它在 Arduino 上为真

arrays - 如果用变量完成,则用负缓冲区声明的数组有效

在C中复制字符串跳过前导字符

c - 使用结构体和指针排序

Java - 将给定的小数组粘贴到指定位置(或间隔)的另一个更大的数组中