//二位陣列引數傳遞//1.
void display1(int arr[4], const int rows)
cout << endl;
} cout << endl;
}//2.
void display2(int(*parr)[4], const int rows)
cout << endl;
} cout << endl;
}//parr[i]等價於*(parr+i)
//3.
void display3(int **parr, const int rows, const int cols)
cout << endl;
} cout << endl;
}void display4(int **parr, const int rows, const int cols)
cout << endl;
} cout << endl;
}int main()
; display3((int**)arr, rows, cols);//不能使用display4
cout << "*****==" << endl;
//動態二位陣列
int **p;
p = new int*[rows];//建立行指標(陣列指標)
for (int i = 0; i < rows; ++i)
for (int i = 0; i < rows; ++i)
for (int j = 0; j < cols; ++j)
p[i][j] = i * cols + j;
display4(p, rows, cols);
//刪除行陣列空間
for (int i = 0; i < rows; ++i)
delete p[i];
//刪除行指標
delete p;
p = nullptr;
//一次性分配空間
int **p1;
p1 = new int*[rows];
p1[0] = new int[rows*cols];
for (int i = 0; i < rows; ++i)
p1[i] = p1[0] + cols*i;
for (int i = 0; i < rows; ++i)
for (int j = 0; j < cols; ++j)
p1[i][j] = i * cols + j;// 或者 *(p1[0]+i*cols+j) = i * cols + j;
display4(p1, rows, cols);
display3((int**)p1[0], rows, cols);
delete p1[0];
delete p1;
}
C語言二位陣列
前言 今天在實現裝配線排程程式時候,用到了二維陣列,並將其作為函式的引數。在寫程式的時候,遇到一些問題,即二維陣列做函式的引數應該如何正確表示。我寫程式的錯誤如下程式所示 1 include 2 void print int a 3 3 67intmain 8 10print a 11return0...
二位陣列與指標
include include using namespace std void disparry int a 2 3 int main void c是乙個指標,指向的元素int 3 即arr的行元素 int c 3 arr int p p int arr p指向arr 0 0 也可以說是arr 0...
二位陣列和指標(參考)
二維陣列和指標 用指標表示二維陣列元素。要用指標處理二維陣列,首先要解決從儲存的角度對二維陣列的認識問題。我們知道,乙個二維陣列在計算機中儲存時,是按照先行後列的順序依次儲存的,當把每一行看作乙個整體,即視為乙個大的陣列元素時,這個儲存的二維陣列也就變成了乙個一維陣列了。而每個大陣列元素對應二維陣列...