指標與數組經典知識

來源:互聯網
上載者:User

※※※※※※※※※※※※※※※※※※※指標與數組※※※※※※※※※※※※※※※※※※※※※※※※※※※ 12:49 2008-1-25            BY:CHLAWS
數組在記憶體中的分配並不是以表格形式排列。 單個元素的儲存和引用實際上是以線性形式排列在記憶體中的。
指標數組就是一個lliffe變數。

****************************************************************************************************
 數組和指標參數是如何被編譯器修改的.
 "數組名被改寫成一個指標參數"規則並不是遞迴定義的.數組的數組會被改寫為"數組的指標",而不是"指標的指標"
****************************************************************************************************
              實     參                                所匹配的形式參數
  數組的數組          char c[8][10];                char(*)[10];             數組指標                                    

  指標數組            char *c[15];                  char **c;                指標的指標
 

 數組指標(行指標)    char (*c)[64];                char (*c)[64];           不改變                                      

 指標的指標          char **c;                     char **c;                不改變     
                                                                                                   
                                                                                                   
 正如上所述, 因此在main()中的參數才能看到 **argv這樣的參數,因為*argv[]是指標數組,在編譯時間會被編譯器改寫
 成一個指向指標的指標.如果argv是一個數組的數組即(char argv[10][15])它將被編譯器改寫成char (*argv[15]),
 而不是 char **argv .                                                                                              

當數組名作為函數參數傳遞時,實際傳遞給函數的是一個指向數組第一個元素的指標.
函數所接受的參數實際上是原參數的一份拷貝(副本),所以函數可以對其進行操作而不會影響實際參數.
但是,對指標參數執行間接訪問操作允許函數修改原先的數組的元素.    
//提煉:即對形參中指標副本的修改不會影響指標參數的本身,但對指標所指向單元的內容的修改會改變實參的內容. 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.