首先一段**:
char a[4] = ;
//int * ptr = a; //a的位址賦值給ptr
char * arr[4];
char i = 0;
char ** parr = arr; //arr的位址賦值給parr
char * str;
*(arr) = a; //a的位址賦值給arr[0]
arr[1] = a + 1; //a[1]的位址賦值給arr[0]
*(arr + 2) = a + 2;
*(arr + 3) = a + 3;
str = *parr; //arr[0]的內容賦值給str
printf("%d\n",str[0]);
str = *(parr+1); //arr[1]的內容賦值給str
printf("%d\n",str[0]);
/*parr是指標的指標,char ** parr = arr賦值後,
指標變數parr儲存的就是陣列arr的位址
*(parr+i)相當於arr[i],由於arr是指標陣列,裡面儲存的是指標,
同時,上面的賦值語句,將陣列arr4個變數賦值為陣列a每乙個元素的位址
*/ for (i=0; i<4; i++)
vc++6.0執行介面如下,除錯功能還是不錯的,
具體的資訊如下所示:
理解二級指標
我在一篇教程中看到下面這段,它描述指向指標的指標是如何運作的。引用文章相關段落如下 1 2 inti 5,j 6,k 7 int ip1 i,ip2 j 現在我們可以這麼寫 1 int ipp ip1 那麼現在指標 ipp 指向了 ip1,ip1 指向了 i。ipp 就是 ip1,ipp 就是 i,...
二級指標理解
1 先看一反例 目的 通過函式mymalloc改變指標p的值 include include void mymalloc char s 我想在函式中分配記憶體,再返回 void main 以上例子中,p實際還是null,p的值沒有改變,為什麼?答 我們的目的就是要改變指標p的值,因為p本身就是指標,...
二級指標的理解
今天看到一段關於二級指標的使用,如下 include int main 執行後的輸出結果如下 a 0xbfe9f968 b 0xbfe9f964 c 0xbfe9f964 c 0xbfe9f964 c 0xbfe9f968 c 12按照輸出理解,首先 c先寫成 c 的形式,c先指向b,然後此表示式可...