我開始編寫這段代碼以獲得樂趣,我很驚訝它編譯和工作。 (我正在使用Dev C++進行編譯)。我想創建一個結構數組,但是在我創建數組之前,它存儲並讀取了它們已經是數組的值。爲什麼會這樣呢,又如何創建一個結構數組,以便跟蹤數組的總大小?像沒有聲明數組的結構數組行爲
#include <iostream>
using namespace std;
struct Shape
{
public:
int x,y,z;
};
struct Triangle: public Shape
{
public:
int tNum;
};
struct Rectangle: public Shape
{
public:
int rNum;
float differentNum;
};
struct Circle: public Shape
{
public:
int cNum;
};
int main(void)
{ int i;
Triangle tri;
Rectangle rec;
Circle cir;
Shape *arr[3]={&tri, &rec, &cir};
for(i=1;i<5;i++){ arr[1][i].x=i*2; cout<<"set tri["<<i<<"] "<<i*2<<endl;} cout<<endl;
for(i=1;i<5;i++){ arr[2][i].x=i*9; cout<<"set rec["<<i<<"] "<<i*9<<endl;} cout<<"-----------------"<<endl;
for(i=1;i<5;i++){ cout<<"read tri["<<i<<"] "<<arr[1][i].x<<endl;} cout<<endl;
for(i=1;i<5;i++){ cout<<"read rec["<<i<<"] "<<arr[2][i].x<<endl;}
system("pause");
return(0);
}
/*output
set tri[1] 2
set tri[2] 4
set tri[3] 6
set tri[4] 8
set rec[1] 9
set rec[2] 18
set rec[3] 27
set rec[4] 36
-----------------`
read tri[1] 2
read tri[2] 4
read tri[3] 6
read tri[4] 8
read rec[1] 9
read rec[2] 18
read rec[3] 27
read rec[4] 36*/
結果取決於堆棧增長還是減少。 –
@ brian beuning,謝謝你指出。無論如何,我確實強調了「中間」的答案,「任何其他使用arr'基本上都是非法的(即使它可能有效)」。 –
哦,好的,謝謝。有沒有辦法讓我創建一個rec的指針數組,並仍然使用這種方法,我打電話給arr? – user3341184