二級指標與陣列

2021-09-29 04:38:32 字數 652 閱讀 5211

char *str = ;

這是字元指標陣列,每乙個陣列元素是乙個指標變數,而每個指標變數指向字串首字元位址,即是字串的位址。因為每乙個字串都代表的是乙個位址,是字串首字元的位址。字串常量是放在文字常量區,是不可以更改的。而指標陣列str裡面存放的是指向字串位址,它是可變的。如str[0] 是可變的,它是指標變數,但是*str[0]是不可變的,它在試圖改變字串常量"abc"的首字元中的a。

二級指標與字元指標陣列是不同的,類似char **p = ;是錯誤的。p只是乙個二級指標變數,也僅僅是乙個指標變數,只能放乙個位址。

char *str = ;

char **p = str;

這樣的寫法是正確,str代表的是這個指標陣列的首元素位址,是乙個指標。str = &str[0],而str[0]本身又是指向字串"abc"的指標,所以指標的指標當然用二級指標來存放。

二級指標常用的用法是在函式傳參過程中。void fun(char *str)這樣的函式,函式中的的形參編譯器會當作指標處理,不是陣列,所以可以寫成void fun(char **str)

void fun(char **p);

void fun(char *p[100])

void fun(char *p)

這三個是等價的,編譯器都是當作char **p處理的

C 陣列指標 指標陣列與二級指標

二級指標 測試 陣列指標是指標,意為指向陣列的指標 指標陣列是陣列,意為陣列內部儲存著指標的陣列。陣列指標具有如下特性1 陣列指標用於指向乙個陣列 陣列名是陣列首元素的起始位址,但不是陣列的起始位址,通過取位址符 作用域陣列名可以得到陣列的起始位址 可以通過陣列型別定義陣列指標如 arraytype...

二級指標變數與陣列

在c語言中,陣列名就是乙個指標常量,儲存陣列的首位址。因為陣列名是乙個常量指標常量,不能修改其指向的值,因此可以定義乙個指標變數指向陣列。這樣使用陣列名加下標可訪問陣列中的元素,使用指標名加下標也可訪問陣列中的元素。這些在本章前面已經介紹過了。現在如果再定義乙個二級指標變數,讓其指向一級指標,就可使...

指標與二級指標

int num 10 int p1 int p2 p1 指標的指向結構如下圖所示 0x4000 0x3000 p2 0x2000 p1 num p2 表示的是儲存p2指標的位址 p2 表示的是p2指向的位址,即指標p1存放的位址 p2 表示指標p2指向位址中所存的值,即指標p1指向的位址,即變數nu...