題目:
二維數組是數組的數組,而數組可以通過指針動態創建。如果動態創建的數組元素也是指針,數組中的每個元素就都可以存儲數組的地址。使用這個概念,創建一個數組,其中包含三個數組指針,每個數組都可以包含六個int類型的值。把第一個整數數組的值設置為1到6,下一個數組的元素值設置為第一個數組元素的平方,第三個數組的元素值設置為第一個整數數組元素的立方。輸出這三個數組的內容,再釋放已分配的內存。
答案:
#include <iostream>
#include <iomanip>
#include <cmath>
using std::cout;
using std::endl;
using std::cin;
using std::setw;
void main() {
const int arrays = 3;
const int elements = 6;
int** ppint = new int*[arrays];
int i=0, j=0;
for (i = 0; i < arrays; i++) {
ppint[i] = new int[elements]; // 等價于 *(ppint + i) = new int[elements];
for (j = 0; j < elements; j++) {
ppint[i][j] = pow((j+1), (i+1)); // 等價于 *(*(ppint + i) + j) = pow((j+1), (i+1));
}
}
for (i = 0; i < arrays; i++) {
for (j = 0; j < elements; j++) {
cout << setw(4) << *(*(ppint + i) + j);
}
cout << endl;
}
for (i = 0; i < arrays; i++)
delete [] *(ppint + i);
delete [] ppint;
}
輸出結果:
1 2 3 4 5 6
1 4 9 16 25 36
1 8 27 64 125 216