c 中二維陣列的指標如何定義?

時間 2023-02-13 10:20:02

1樓:匿名使用者

二維陣列的指標就是指標的指標,比如一個int型二維陣列:int array[2][3];

指向它的指標就可以定義成:int **p;

如何使用這個指標呢,就和使用普通二維陣列一樣,比如第一行第二個元素:p[0][1]

2樓:匿名使用者

// int a[2][2] =

// a 就是 a[0][0] 第一行第一列。

// a + 1) 就是 a[0][1] 第一行第二列。

// a + 1) 就是 a[1][0] 第二行第一列。

// a + 1) +1) 就是 a[1][1] 第二行第二列。

3樓:匿名使用者

int array[5][10];

int (*parray)[10] =array; 定義一個指標陣列,指向一個二維陣列。

c++中怎麼用new函式定義一個二維陣列?

4樓:風若遠去何人留

需要先申請一個m個元素的一維指標空間,然後對每個一維指標上,申請n個元素的物件空間。這樣就可以申請一個m行n列的二維陣列空間了。

以整型為例。

const int m = 10, n = 5;//10行5列。

int **a;

a = new int *[m];

for(int i = 0; i < m; i ++a[i] =new int[n];

所得到的a就是10行5列的陣列。

使用後需要釋放,**為。

for(int i = 0; i < m; i ++delete a[i];

delete a;

c++如何用指標指向二維陣列

5樓:查恨蝶侯西

不能用二維指標指向二維陣列,指向二維陣列的指標最後一維必須是確定的。

inta[4][4]=;

int(*s)[4];

//表明s指向一個n*4的陣列。

s=a;還有一種方法是將二維陣列看成是一維陣列(因為陣列在記憶體中連續儲存)inta[4][4]=;

int*s;

s=&a[0][0];

這樣可以用s[x*y]來表示a[x][y];

6樓:東星津風長

你是想讓這個指標直接指向你靜態定義的陣列還是指讓指標開闢一塊新空間讓它等於靜態陣列,這是很不同的。

照樓上說的方法你自然可以很方便得到靜態陣列的指標。但是注意如果你的這個賦值是要在其他地方使用,即不是在。

=,所在的函式內部使用的話(而且用到指標的大都這種狀況)那麼你必須new出一片新空間來,再用原來的靜態定義給新空間賦值。

這樣保證你所得到的地址是有效的,這些數字還在。

如果你直接在外部使用靜態定義的陣列的話,地址自然能找到,但是裡面其實已經被析構掉了,內容天差地別,你對其操作還會引起非法。

諸多麻煩。。

請教c++二維陣列和指標的簡單問題。

7樓:匿名使用者

1.設有int a[3][2] =p)[2]=a1;則*(*p+2)+1)的值是__1__。

答案6問題:有人說,p是含有兩個元素的一維陣列,怎麼是含有兩個元素呢?

然後請解釋一下(*p)[2]=a1,*(p+2)+1和求解過程。

int a[3][2] =嚴格表示應該為:

int a[3][2] =a[0], a[1]

//a[2]

}, 三組數,每組兩個。

int (*p)[2]=a1的正確寫法為:int (*p)[2]=a[0] ;p是指標,其所指向的地址中的資料型別為「兩個int」,即p指向的地址中的資料可以看成是 「一個含有兩個元素的陣列" 。這樣描述,你應該可以看的懂。

p+0 --a[0]

p+1 --a[1]

p+2---a[2]

*(p+2) 指向a[2][0]的地址。

*(p+2)+1指向a[2][1]的地址。

*(*p+2)+1)就是a[2][1]的值 = 6

2,.有二維字元陣列char s[4][6]=,執行程式cout<<*s[2],螢幕上顯示 (

a gao b tang c g d t 答案b

問題:*s[2]是什麼呢? 怎麼求出來是s[0][2]的值呢??

s[0]指向"zhang"

s[1]指向"gao"

s[2]指向"tang"

s[3]指向"wang"

*s[2]就是指s[2]的第一個數值 t,所以答案應該是d

首先要先搞明白指標是什麼。

然後要搞明白陣列名是什麼。

再搞清楚陣列與指標的關係。

然後再去研究多維陣列的概念。

再去研究多維陣列與指標的關係。

最後再研究陣列指標的概念。

8樓:匿名使用者

第一個不完整吧。

2,你可以看一下二維陣列的初始化,s[i](i=0,1,2,3)都是char*型別的指標。

c++中如何在class中定義一個指標,指向外面的一個已存在的二維陣列?

9樓:匿名使用者

一個可能的問題:

二維陣列作為引數傳遞給函式的時候,由於在函式內部不知道陣列的「寬度」,造成沒有辦法在陣列內定址。所以在傳遞二維陣列的時候需要在形參中指定二維陣列的「寬度」,或者把二維陣列序列化為一維陣列,自己計算偏移。

10樓:匿名使用者

第。

一、保證指標的型式是相同的;

第。二、你確定傳遞的是地址,類裡傳遞一般是引用;

第。三、在protected、private許可權中定義的變數是無法訪問的。

可能還有其它細節,慢慢摸索!

11樓:電子產品第一線

你在類裡定義一個指向array2d型別資料的指標不行麼。

12樓:手機使用者

// int a[2][2] =

// a 就是 a[0][0] 第一行第一列。

// a + 1) 就是 a[0][1] 第一行第二列。

// a + 1) 就是 a[1][0] 第二行第一列。

// a + 1) +1) 就是 a[1][1] 第二行第二列。

c++中定義一個動態二維陣列用一位指標輸出

C二維陣列如何初始化為,C 二維陣列如何初始化為

du瓶邪 include using namespace std int main cout c 也可以寫 int a 10 8 簡單的就是 memset a,0,sizeof a 例如 int a 3 4 a 0 0 0 這樣寫第一個元素初始化為0,其餘也會初始化為0還有一種就是 memset 要...

php 二維陣列賦值定義,php怎樣定義二維陣列?

arr array array id 1,xuefei 50萬以下 array id 2,xuefei 51萬 60萬 xuefei array array id 1,xuefei 50萬以下 array id 2,xuefei 50萬 60萬 array id 3,xuefei 60萬 70萬 a...

c語言中如何通過二級指標來操作二維陣列

灩麗 1 首先我們開啟電腦裡的c語言軟體,新建一個工程和.c檔案,輸入標頭檔案和主函式。2 然後我們輸入圖示 初始化陣列,定義變數型別。3 然後我們輸入圖示 用for語句實現陣列的訪問。4 然後我們輸入圖示 進行輸出。5 然後我們輸入圖示 編譯 執行,即可通過二級指標來操作二維陣列。 小宇宙 倘若此...