c中多維陣列及陣列指標的理解

2021-06-25 19:34:31 字數 1061 閱讀 4615

《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 ...