복잡한 프로그래밍에 C++을 처음 사용했습니다. 나는 내 부서를 통해 전해지는 남은, 주석이없는, 학문적 인 코드를 샅샅이 뒤졌고, 나는 구글을 어떻게 할 지 전혀 모르는 무언가를 우연히 발견했다. 구조체의 배열을 참조 할 때 구문을 이해할 수 없습니다.구조체 배열을 참조하는 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)
이 경우에는 무엇을 의미 하는가 :
내가 고민하고있는 무슨의 손질 버전?
편집 : 함수는 (circle + i)
이 아닌 (circles + i)
이어야합니다.
컴파일됩니까? 'circle + i '이어야합니다. –
구조체의 크기에 따라 다릅니다. 구조체의 배열을 선언 할 때 인접한 메모리가 구조체의 멤버가되는 순서대로 정확하게 정렬되기 때문에'sizeof (circle) '를 호출하여 구조체가 패딩과 얼마나 큰지 알 수 있습니다. 선언했다. – noobProgrammer
'circle'은 유형입니다.아마 당신의 코드는'(circle + i)'라고 말해야합니다. – ooga