我一直在研究C++進行測試,目前我正在使用指針算術。指針算術幫助
的基本問題是以下內容:
int numColumns = 3;
int numRows = 4;
int a[numRows][numColumns];
a[0][0] = 1;
a[0][1] = 2;
a[0][2] = 3;
a[1][0] = 4;
a[1][1] = 5;
a[1][2] = 6;
a[2][0] = 7;
a[2][1] = 8;
a[2][2] = 9;
a[3][0] = 10;
a[3][1] = 11;
a[3][2] = 12;
for (int i=numColumns-1; i>-1;i--)
{
cout << a[numRows-1][i] << endl;
}
一個非常簡單的程序,它打印低級「的矩陣的行」。即12,11,10。
現在我試圖做一個int *的等價物。
我已經通過我的同學說是認爲它是這樣的:
array[i][j] == p[numColumns*i+j]
如果這是正確的,不應該下面是相當於什麼我在尋找:
int* p = reinterpret_cast<int*> a;
for (int i=numColumns-1; i>-1;i--)
{
cout << p[numColumns*(numRows-1)+i] << endl;
}
謝謝。
你試過了嗎? – Beta 2010-08-26 19:15:27
歡迎來到SO!感謝您告訴我們您正在學習考試。我爲你的問題添加了「家庭作業」標籤。你以很好的方式提出這些問題。 – John 2010-08-26 19:15:29