C++ 引用结构数组

标签 c++ arrays struct

我刚开始使用 C++ 进行复杂的编程。我一直在筛选我部门传下来的一些剩余的、未注释的、学术代码,我偶然发现了一些我不知道如何用谷歌搜索的东西。我不明白引用结构数组的语法。

这是我正在努力解决的问题的精简版:

typedef struct
{
    double x0,y0;
    double r;
} circle;

double foo()
{
    int N = 3;
    double mtt;
    circle circles[N];

    for (int i = 0; i < N; i++)
    {
        mtt += mtt_call_func((circles+i), N);
    }

    return mtt;
}

在这种情况下,(circles+i) 是什么意思?

编辑:函数应该有 (circles + i),而不是 (circle + i)

最佳答案

circles+i 等同于 &circles[i]。这就是指针算法在 C++ 中的工作原理。

为什么会有指针?好吧,当您在 &circlessizeof circles 以外的上下文中给出数组名称时,会创建一个指向数组第一个成员的临时指针;这就是您的代码的作用。数组在 C++ 中是二等公民;它们的行为不像对象。

(我假设你的 circle+icircles+i 的拼写错误,正如其他人所建议的那样)

关于C++ 引用结构数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23037750/

相关文章:

python - 前置字节数组 : TypeError: an integer is required

java - 斯卡拉 : how to start an actor in array?

c - 如何引用变长结构

c++ - 将 struct 写入文件时写入了太多字节

c++ - 无法打开文件 [TESTXML.xml]

c++ - 在 C++ 中添加自定义字体并在 QML 中按其姓氏调用它们

c++ - 什么是 C++ forwarditerator 的例子?

c++ - BOOST 线程 : cout behavior

c - 访问数组元素时指针的索引

swift - 在 SWIFT 中使用结构(字节)- 结构到 NSData 和 NSData 到结构