数组作为操作数的语法

Syntax for arrays as operands

本文关键字:语法 操作数 数组      更新时间:2023-10-16

传递未在函数中预定义的数组作为操作数的语法是什么?

例如,我有这样一个函数:

void kilos(int percentage[2], char liquid[2][4]);

因此,如果我创建两个不同的数组并将它们作为操作数传递,一切都可以正常工作。如果我不想在函数调用之前创建数组,该如何工作?唯一的解决方案是分析操作数,而不是使用数组?

我想调用这个函数,但是我想在调用这个函数的时候把数组变成这样:

kilos(int percent[2]={40,60}, char liq[2][4]={'wate','milk'})

在c++中,如果你有一个支持c++ 11的编译器,并且你使用std::vector而不是原始数组,你可以使用初始化列表:

 void kilos(const std::vector<int> percentage,
            const std::vector<std::string> liquid);
// ...
kilos({40, 60}, {"water", "milk"});

向函数传递指针相当于传递数组。该指针可以指向静态分配的缓冲区,也可以指向动态内存(例如new []malloc)。

您需要像这样调用函数:

kilos((int[2]){40,60}, (char[2][4]){"wate", "milk"});

注意字符串字面量周围的双引号。您可能需要第二个数组为char[2][5]以允许空终止符。