那麼,你也許應該用於在首位這樣的事情,因爲數組會作出這個任務就輕鬆多了:-)
但是,你可以嘗試鑄造結構到一個數組並打印出來。有沒有保證,將在每一個執行工作,因爲它可能是結構得到不同的填充到一個數組,但我無法想象爲什麼,但你可能會得到幸運:
int *base = (int*)(&bar.one);
for (int i = 0; i < 50; i++)
std::cout << "Item #" << (i + 1) << " = " << base[i] << '\n';
通過舉例的方式,下面的程序:
#include <iostream>
struct foo {
int one, two, three, four;
};
int main() {
foo bar;
bar.one = 42;
bar.two = 314159;
bar.three = 271828;
bar.four = 1414;
int *base = (int*)(&bar.one);
for (int i = 0; i < 4; i++)
std::cout << "Item #" << (i + 1) << " = " << base[i] << '\n';
return 0;
}
輸出該:
Item #1 = 42
Item #2 = 314159
Item #3 = 271828
Item #4 = 1414
在我的環境(7的Debian,G ++ 4.7.2):
但是,如果你想對待他們像一個數組,他們真的應該是一個數組。
你可能不應該有這樣的結構。這就是陣列的用途。 – meagar
其中有50個整數的結構?立即重新思考你的設計 – Borgleader
你如何分配int one = 1;值直接構造成員? – Sumeet