C指標小結3

來源:互聯網
上載者:User

標籤:c編程


                                                  C指標小結3


       現在總結指標的更高一級的用法,其中指向函數的指標在我的博文中已經單獨介紹過了,將會補充介紹幾點,現在介紹別的指標的用法。
      首先介紹幾個陷阱:
       int f()[];
       int f[]();
       這兩個聲明都是非法的,如果有人問這兩個聲明什麼意思,我們應當不加思索的說出這是錯誤地聲明,博主就曾經苦苦思考過這兩個聲明的意思,現在想想都覺得可笑。
             現在對於指向函數的指標補充幾點:
         例如:
           int (*pf)(int)=&f;
          現在建立了一個函數指標,並把它初始化為指向函數f,其實初始設定式的&操作符是可選的,因為函數名被使用時總是由編譯器把它轉化為函數指標。&操作符只是顯示的說明了編譯器隱式的執行的任務。
         函數名首先被轉換為一個函數指標,該指標制定函數在記憶體中的位置。
         除了函數指標還有一個重要的用法就是轉化表。就是使用void進行泛型的計算。
         我的博文void與泛型計算已經比較清楚的說明了這一問題。
         指標最後一個進階應用程式執行個體就是命令列參數的使用,也已經介紹過了。
現在介紹關鍵字const.
       const可以建立常數陣列,指標常量,以及指標常量的指標。
       通常把指向常量的指標用作函數參量,以表明函數不會引用這個指標來修改資料。
        void show_array(const  double *ar ,int n)
         關於指標賦值和const有一些規則要注意,首先將常量或非常量資料的地址賦給指向常量的指標是合法的。
          int rates[10]={0};
          const double *p=rates;
        然而只有非常量資料的地址才能賦給普通指標:
         const double a;
         p=a;非法 
         double *p=rates;合法
         聲明一個指向固定的地址的指標:
         double *const p=rates;這個指標指向數組的第一個元素的地址並且不能改變。
         可以使用兩個const來進行聲明:
         const double *const p=rates;不可以修改指標的值和指標指向的內容。

C指標小結3

聯繫我們

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