c基礎知識複習

來源:互聯網
上載者:User

標籤:style   blog   http   color   com   使用   

C的發展曆程

  C原本是為了開發UNIX作業系統而設計的語言;如此說,應該C比UNIX更早問世,而事實並非如此,最早的UNIX是由彙編寫的;

 C語言本來是美國人開發的,解讀C的聲明,最好還是用英語來讀;

  解讀C聲明的步驟:

    1、首先著眼於標識符(變數名或者函數名)

    2、從距離標識符最近的地方開始,依照優先順序解釋衍生類別型(指標、數組和函數)。優先順序說明如下:

      a、用於整理聲明內容的括弧;

      b、用於表示數組的[ ],用於表示函數的( )

      c、用於表示指標的*

    3、解釋完成衍生類別型,使用 “of”、 “to”、“returning”將它們連結起來;

    4、最後,追加資料類型修飾符(在左邊, int、double等)

 int  (*func_p)(double);

   1、著眼於標識符。即:func_p  /*/  func_p   is

   2、因為存在括弧,著眼於括弧*:  /*/func_p is  pointer  to 

   3、著眼於用於整理聲明內容的括弧: /*/func_p  is pointer to function(參數是double)  returning

   4、最後、解釋資料類型修飾符int : /*/  func_p  is pointer  to function (參數是double) returning int

  翻譯成中文:func_p 是指向傳回值為int 的函數的指標;

           

          C語言的聲明不能從左往右按順序解讀;而是左右來回地解讀;

  int  (*func_table[10])(int  a);

  func_table  is  array(元素個數為10)   of  pointer  to function(參數int類型)   returning  int

對指標進行加法運算,指標只前進 指標所指向類型的大小的距離,這一點具有非常重要的意義;

“指向數組的指標”,

  錯誤理解:數組名後不加[ ] ,不就是“指向數組的指標”嗎?

的確,在運算式中,數組可以被解讀成指標,但是, 這不是“指向數組的指標”, 而是“指向數組初始元素的指標”

(之後就是涉及一個+1指標的跨度問題,很經典的問題)

 

 

 

 

 

 

 

相關文章

聯繫我們

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