C語言高階 3 二維指標

2021-10-24 00:22:41 字數 1747 閱讀 8339

1. 什麼是二維指標

二維指標與一維指標一樣都是儲存位址的變數。

#include

intmain()

一維指標存放變數位址,二維指標存放一維指標位址。

#include

intmain()

;int

* p = arr;

for(

int i=

0;i<6;

++i)

// 二維指標與指標陣列之間關係

int arr2[6]

=;int* parr=

;int

** pp = parr;

for(

int i=

0;i<2;

++i)

printf

("\n");

}}

一維指標存放陣列位址,二維指標存放指標陣列位址。

2. 二維指標怎麼用

1. 二維指標作為函式引數

傳入一維指標位址

傳入一維指標位址可以取出函式內部申請的動態記憶體。

可以取出單個變數

#include

#include

void

func

(int

** pp)

intmain()

也可以取出乙個陣列

#include

#include

void

printarray

(int

* arr,

int n)

}void

func

(int

** pp,

int n)

printarray

(p,n)

;*pp = p;

}int

main()

傳入指標陣列位址

#include

void

printstrings

(const

char

** strs,

int n)

}int

main()

;printstrings

(strs,3)

;}

2. 二維指標作為函式返回值

二維指標通常用作指標陣列的返回值型別。

#include

#include

int*

*createidentitymatrix

(int r,

int c)

}return pm;

}void

printmatrix

(int

** pm,

int r,

int c)

printf

("\n");

}}void

destorymatrix

(int

** pm,

int r,

int c)

free

(pm)

; pm =

null;}

intmain()

C語言二維陣列指標(指向二維陣列的指標)

二維陣列的定義 int matrix 見圖的操作那篇文章裡面的定義 或者這篇文章提供了另外一種方法。二維陣列在概念上是二維的,有行和列,但在記憶體中所有的陣列元素都是連續排列的,它們之間沒有 縫隙 以下面的二維陣列 a 為例 int a 3 4 從概念上理解,a 的分布像乙個矩陣 0 1 2 3 4...

二維陣列指標表示,C語言指標引用二維陣列詳解

指標變數可以指向一維陣列中的元素,當然也就可以指向二維陣列中的元素。但是在概念和使用方法上,二維陣列的指標比一維陣列的指標要複雜一些。要理解指標和二維陣列的關係首先要記住一句話 二維陣列就是一維陣列,這句話該怎麼理解呢?假如有乙個二維陣列 int a 3 4 其中,a 是二維陣列名。a 陣列包含 3...

二維陣列和指標 C語言

二維陣列和指標 1 二維陣列a由若干個一維陣列組成在c語言中定義的二維陣列實際上是乙個一維陣列,這個一維陣列的每乙個成員又是乙個一維陣列。如以上定義的a陣列,則可視a陣列由a 0 a 1 a 2 等三個元素組成,而a 0 a 1 a 2 等每個元素又分別是由4個整型元素組成的一維陣列。可用a 0 0...