指標數組等基礎

來源:互聯網
上載者:User

         話說昨天我讀C++ Primer的時候,遇到句話不理解,void putValues( int (&arr)[10] );,然我疑惑了好一會,

然後就跑CSDN上去提問(貌似高手回貼速度很快的), 雖然很多熱心的大蝦幫我解釋,我還是迷迷糊糊的,

今天結貼給分的時候都還鬱悶著呢。

       直到我實在受不了了,翻開老譚的書看看,有int *p[10],這樣的寫法,我才豁然開朗啊,

這麼基礎的東西有都叫我忘了,不過疑問搞不清楚的滋味真不爽啊,所以特地就這方面的細節寫出來,

希望以後有相同疑問的兄弟們看到我的文章能有所協助。

      int  a[10];   //這個我想是寫程式得都知道,一個int型數組,我的目的是由這裡方便理解後面的

     int* a[10];  //咋看上去可能比較迷糊,但是參考上面的,由於“[ ]”優先順序高,所以等同於int*  T(a[10]);就是說也是包含10個元素的數組,不過元素類型從int變成了int*;(指標數組)

    int& a[10];  //error  不要以為同上,不支援引用數組

//以下寫法可能主要用在傳函數參數上面,一般不會直接這麼定義

    int (*p)[10]; //到數組的指標,不過和一般的int a[10]; int* p = a;不一樣,這種寫法就是說int a[10]; int* p = &a;所以也可以把p當作一個二維數組的指標來理解,就是一個N行10列的數組,等價於int p[  ][10];

    int (&r)[10]; // 到數組的引用,這樣寫以後實際上就是對數組名字&r=a; 但是應為引用必須初始化,所以要這樣寫int a[10]; int (&r)[4] = a; 然後r[n]就等於a[n]拉,
 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.