<delect id="sj01t"></delect>
  1. <em id="sj01t"><label id="sj01t"></label></em>
  2. <div id="sj01t"></div>
    1. <em id="sj01t"></em>

            <div id="sj01t"></div>
            C語言

            c語言知識:數組指針和指針數組的區別

            時間:2025-05-11 01:57:02 C語言 我要投稿
            • 相關推薦

            c語言知識:數組指針和指針數組的區別

              指針數組和數組指針,這兩個名字不同當然所代表的意思也就不同,下面是其區別,歡迎閱讀:

            c語言知識:數組指針和指針數組的區別

              指針數組:array of pointers,即用于存儲指針的數組,也就是數組元素都是指針

              數組指針:a pointer to an array,即指向數組的指針

              還要注意的是他們用法的區別,下面舉例說明。

              int* a[4] 指針數組

              表示:數組a中的元素都為int型指針

              元素表示:*a[i] *(a[i])是一樣的,因為[]優先級高于*

              int (*a)[4] 數組指針

              表示:指向數組a的指針

              元素表示:(*a)[i]

              注意:在實際應用中,對于指針數組,我們經常這樣使用:

              1

              2

              typedef int* pInt;

              pInt a[4];

              這跟上面指針數組定義所表達的意思是一樣的,只不過采取了類型變換。

              代碼演示如下:

              #include

              using namespace std;

              int main()

              {

              int c[4]={1,2,3,4};

              int *a[4]; //指針數組

              int (*b)[4]; //數組指針

              b=&c;

              //將數組c中元素賦給數組a

              for(int i=0;i<4;i++)

              {

              a[i]=&c[i];

              }

              //輸出看下結果

              cout<<*a[1]<<endl; p="" 輸出2就對<="">

              cout<<(*b)[2]<<endl; p="" 輸出3就對<="">

              return 0;

              }

              注意:定義了數組指針,該指針指向這個數組的首地址,必須給指針指定一個地址,容易犯的錯得就是,不給b地址,直接用(*b)[i]=c[i]給數組b中元素賦值,這時數組指針不知道指向哪里,調試時可能沒錯,但運行時肯定出現問題,使用指針時要注意這個問題。但為什么a就不用給他地址呢,a的元素是指針,實際上for循環內已經給數組a中元素指定地址了。但若在for循環內寫*a[i]=c[i],這同樣會出問題。總之一句話,定義了指針一定要知道指針指向哪里,不然要悲劇。


            【c語言知識:數組指針和指針數組的區別】相關文章:

            C語言中指針與數組的區別03-11

            C語言指針數組的概念07-19

            C語言數組與指針詳解08-15

            C語言中指針與數組的詳解及區別02-20

            C語言-15:多維數組與指針07-25

            如何使用C語言數組指針04-27

            C語言指針和數組基礎知識04-22

            c語言數組指針變量的說明和使用07-26

            C語言指針和數組的學習方法04-23

            <delect id="sj01t"></delect>
            1. <em id="sj01t"><label id="sj01t"></label></em>
            2. <div id="sj01t"></div>
              1. <em id="sj01t"></em>

                      <div id="sj01t"></div>
                      黄色视频在线观看