指標指向二維陣列問題 |
尚未結案
|
syao
初階會員 發表:66 回覆:63 積分:25 註冊:2005-02-02 發送簡訊給我 |
|
Stallion
版主 發表:52 回覆:1600 積分:1995 註冊:2004-09-15 發送簡訊給我 |
|
syao
初階會員 發表:66 回覆:63 積分:25 註冊:2005-02-02 發送簡訊給我 |
|
Stallion
版主 發表:52 回覆:1600 積分:1995 註冊:2004-09-15 發送簡訊給我 |
|
雲中鵝
一般會員 發表:14 回覆:24 積分:7 註冊:2004-12-21 發送簡訊給我 |
1.
const int r=2,c=2;
int foo[r][c];
int *p=&foo[0][0];
這時p指的是第一個foo位址
foo[1][2]相等於*(foo 1*r 2)表示為第一列位址後,算起的第2的元素 2.
還有二維陣列"名稱"不能當作指標起始位址嗎??可以
一.若int *ptr則p[i]=*(p i);同理則foo[2][3]也可表示為*(*(foo 2) 3) or
*(foo 2)[3];
故你若要以陣列名稱當做指標起始位址.時,就應
int (*ptr)[3]=foo;
=&foo[0];//指向第一列的位址.
原因則為因foo[x][3],每一列之間相差為3個元素,故int* ptr=foo,是依每列之間為一個元素.故會發生錯誤. Try it!
------
Try it! |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |