二級指標的用法,(C ) 如何用二級指標指向二維陣列?

2022-03-03 17:04:35 字數 2101 閱讀 2298

1樓:徐光豬

用記憶體位址去理解吧,一級指標是指向定義型別的記憶體位址,二級指標就是指向定義型別的記憶體位址所指向的新的記憶體位址。我舉乙個例子。

#include

void main()

;char **p;

int n;

printf("請輸入日期:\n");

scanf("%d",&n);

printf("對應英語日期:%s\n",*(p n-1));/* *(p n-1)還是指標,指向的n-1位元素的首位址 */}

這就是二級指標的用法,定義乙個指標陣列*day裡面包含7個字串,如果你想輸出字串,你就需要乙個二級指標,因為一級指標只能定址到字串所在的位置,如:n=3,*p則能找到星期三所在的位置而已,並不能將其輸出,因為沒有其首位址,而**p則完成二級定址,找到了星期三,也找到了它的首位址,所以能輸出(字串輸出指標移動是系統自動移動的)

2樓:4747哦

#include

main()

;int *num[5],i;

int **p;

for(i=0;i<5;i++)

num[i]=&a[i];

p=num;

for(i=0;i<5;i++)

}#include

main()

;char **p;

int i;

for(i=0;i<5;i++)

} 指向指標資料的指標用的是「二級間址」方法,從理論上說,間址方法可以延伸到更多的級,即多重指標。但實際上在程式中很少有從超過二級間址的。級數愈多,愈難理解。

c語言關於二級指標

3樓:匿名使用者

實參看情況比如

1 .char array[10][10];

則可以將array 傳入。

2 當然也可以 char **array;然後自己申請記憶體。

接著將array傳入。

3 或者char *array;

將&array傳入。

當然要看你是什麼用法。

從你的函式來看你估計是要傳乙個二維陣列首位址,也就是第乙個。

4樓:橙心橙願

很多人以為「指向陣列的指標」就是「指向指標的指標」,於是有人寫這樣的**:int a[3][4];int **p = a;//錯誤這個**的錯誤之處在於a是乙個陣列,它的成員也是陣列,所以a叫做「陣列的陣列」——c中嚴格說來沒有二維陣列。那麼,你要用乙個指標來記錄a,就要用乙個能表示「陣列的陣列」的指標,以下**是正確的:

int (*p)[4] = a;//正確只有這樣才能保證++p使p指向a的下一對像(該對像是乙個陣列)。順便提一句:不要寫成「int *p[4];」

5樓:較台體貼

可以直接傳遞乙個二級指標、二維陣列名、一維陣列名前加取位址符等

c語言 tailq 為什麼使用二級指標

6樓:風若遠去何人留

沒有看到你的**。

不過 用二級指標 一般是用在函式引數上的

將一級指標值帶回主函式

其它情況下 二級指標用的比較少

(c#) 如何用二級指標指向二維陣列? 30

7樓:匿名使用者

c#中用指標不方便啊,並且官方也是不贊成使用,因為不安全,如果要使用的話可以在字段unsafe下使用,以下是乙個單指標使用例子,雙重指標可以仿照一下

unsafe

ptr += bmpdata.stride - bmpdata.width * 3;//指向下一行陣列的首個位元組}}

8樓:光子炮

c++沒學好,不太懂你的意思。

c#本身肯定能實現你這個功能的。

如果你對c++很熟c#不熟的話,你直接把方法申明為unsafe的,這樣就可以直接使用指標了。

9樓:

我也遇到了一摸一樣的問題,不知道該怎麼辦了~

10樓:匿名使用者

二級指標是存的是指標的位址,怎麼表示二維陣列?

C語言處理指標問題中,二級指標與一級指標的區別是什麼

一級指標裡存放的是乙個位址,這個位址就是該指標指向的目標變數的位址 二級指標的第一級指標裡存放的也是乙個位址,但這個位址是另乙個指標變數 稱二級指標 的位址,這 另乙個指標 裡存放的才是這個指標 就是二級指標 指向的目標變數的位址。1,明確都是指標。2,一級指標是指向乙個位址,那二級指標也是指向乙個...

二級C問題

1,3,5 指標就是乙個變數,存放著目標的首位址,作為其值k為指標的指標,陣列名即為陣列首位址的指標,所以,指標可以像陣列那樣使用。由k為指標的指標,k i 即為第i個指標,前面再加乙個 即為所指向位置的值。a 2 i 為陣列a第2 i個元素的位址 include void main k 3 i 0...

c語言問題二級考試題目,c語言二級考試題及答案

while p x x 10 48 p 只要 p有值就迴圈,x x乘10 48 p 0 x x乘10 48 p 1 x x乘10 48 p 2 48是0的ascii碼,比如字元 0 48 0,字元 1 48 1 所以 p 48就是要求的那個數字。每次乘10就是前進一位,空出個位再加上 p 48。最後...