我是使用C ++进行复杂编程的新手。我一直在筛选通过我的部门传下来的一些剩余的,未注释的学术代码,而我偶然发现了一些我不知道如何使用Google的东西。我不了解引用结构数组的语法。
这是我正在努力的修整版:
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 ++中的工作方式。
为什么会有指针?好吧,当您提供数组的名称时,在除&circles
或之外的其他上下文中sizeof circles
,将创建一个临时指针,该指针指向该数组的第一个成员。这就是您的代码所使用的。数组是C ++中的二等公民。它们的行为不像物体。
(我假设您circle+i
是circles+i
其他人建议的错字)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句