《c和指標》第八章第四題:對於可指定尺寸的陣列,判斷其是否為單位矩陣。
=背景介紹=
1.多維陣列做形參
矩陣需要用二維陣列表示,二維陣列作為形參可用以下兩種形式:
void func(int (*matrix)[10])
void func(int matrix[10])
必須指定第二維的具體數字,不可以用void func(int matrix)這種形式!
2.陣列指標
陣列指標即指向陣列的指標,形如:
int matrix[3][10];
int (*p)[10]=matrix;
這裡p是指向擁有10個整型元素的陣列的指標,p++表示一行一行地在matrix中移動。
注意:int (*p)=matrix這種形式是錯誤的!必須指定第二維。
要想逐個訪問matrix中的元素,需要採用下列形式:
int *pi=&matrix[0][0];或
int *pi=matrix[0];
=題目解答=
函式可寫為:
int identity_matrix(int *matrix,int n)
{ int i,j,r;
for(i=0;i
int main()
{ int matrix[size][size];
int i,j,r,n;
printf("input the matrix's size:");
scanf("%d",&n);
printf("input the matrix:\n");
for(i=0;i
這樣的話,遍歷各個點就會得出不是單位陣的結論。
=解決=
1.函式修改形參形式,和main一樣變為冗餘形式:
int identity_matrix(int matrix[size][size],int n)
{ int i,j,r;
for(i=0;i————未解決
指標 多維陣列 陣列指標 指標陣列
之前對陣列的概念一直沒有理解透徹,只覺得陣列名就是個常量指標而已,用法和基本的指標差不多。所以當我嘗試用二級指標去訪問二維陣列時,就經常會出錯。下面就是剛開始寫的乙個錯誤的程式 include int main int parray null parray iarray printf array 0...
多維陣列 陣列的陣列 及指針對其訪問
首先,我要說明的,在c語言中,把 多維陣列 叫做 陣列的陣列 更好理解一下。下面我就統一稱之為 陣列的陣列 有的教程中喜歡將陣列的陣列用矩陣表示,不過我更趨向於直線表示,如下圖 定義陣列的陣列int ga 2 3 5 我對陣列的陣列的理解 以ga 2 3 5 為例 即為陣列的陣列,陣列裡面包含陣列,...
C 多維陣列和指標
用指標變數可以指向一維陣列中的元素,也可以指向多維陣列中的元素。先回顧一下多維陣列的性質,可以認為二維陣列是 陣列的陣列 例 定義int a 3 4 則二維陣列a是由3個一維陣列所組成的。設二維陣列的首行的首位址為2000 則有 第一行位址a 0 2000a 0 0 2004a 0 1 2008a ...