C++ * vs [] 作为函数参数

标签 c++ arrays pointers parameters struct

有什么区别:

void foo(item* list)
{
    cout << list[xxx].string;
}

void this(item list[])
{
    cout << list[xxx].string;
}

假设项目是:

struct item
{
    char* string;
}

指针指向字符数组的第一个

list只是一个项目数组...

最佳答案

对于编译器来说,没有区别。

虽然读起来不一样。 [] 表示您想要将数组传递给函数,而 * 也可能意味着只是一个简单的指针。

请注意,当作为参数传递时,数组会衰减为指针(以防您不知道)。

关于C++ * vs [] 作为函数参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10760893/

相关文章:

arrays - 计算列表中 k 个最大数字之和的有效方法?

字符指针和 printf 2

c - 如何在 C 中声明和初始化指向结构的指针数组?

C++ - 动态使用引用或局部变量

c++ - 在 QML 或 C++ 上设计 UI,BB10

c++ - Lotus Notes C++ API - 未指定平台

javascript - 表单验证和数组,如何收缩多个 if 和 else 语句?

c++ - C++中基类对象和派生类对象的大小

java - 多重 map 中最近距离的两次

只有指针才能保存 NULL 值吗?