110.C語言_基礎知識

第一章  基礎知識node

  • 1.1  基本框架
    • //任何一個c語言程序都必須包括如下格式:
      int main(int argc, char *argv[] )
      {
      return 0;
      }
      //這是c語言的基本結構,任何一個程序都必須包含這個結構。括號內能夠不寫任何內容,那麼該程序將不執行任何結果。
    • 1.1.1  main()
      • 在c語言中稱之爲「主函數」,一個c程序有且僅有一個main函數,任何一個c程序老是從main函數開始執行,main函數後面的一對圓括號不能省略。
        main(int argc,char**argv) {}  第一個參數是表示輸入的字符串的數目,第二個參數是指向存放的字符串
      • 1.1.1.1  C語言中int main()和int main(void)區別
        • 1.K&R書上main函數定義寫成main(){...} 形式,不寫返回值類型也不寫參數列表,這是Old Style C的風格。
          Old Style C規定不寫返回值類型就表示返回int型,不寫參數列表 就表示參數類型和個數沒有明確指出。
          這種寬鬆的規定會致使不少複雜的Bug產生,不幸的是如今的C標準爲了兼容舊的代碼仍然保留了這種語法。
          
          2. 其實系統在調用main函數時是傳參數的,因此main函數最標準的形式應 該是int main(int argc, char *argv[])。
          C標準也規定了int main(void) 這種形式,若是不使用系統傳進來的兩個參數也能夠寫成這種形式。
          但除了這兩種形式以外,以其它形式定義main函數都是錯誤的或不可移植的。
      • 1.1.1.2  標準形式
        • 在最新的 C99 標準中,只有如下兩種定義方式是正確的:
           int main(void){}
           //整數類型主函數(無類型) = int main()
           int main(int argc,char **argv)
            //整數類型主函數(整數類型 統計參數個數,字符類型*數組指針至字符[])
      • 1.1.1.3  C++98中的定義
        • 以下兩種main函數的定義方式:
          int main( )
          int main( int argc, char *argv[] )
    • 1.1.2  函數體
      • 被大括號{ }括起來的內容稱爲main函數的函數體,這部份內容就是計算機要執行的內容.
        在{  }裏面每一句話後面都有一個分號(;),
        在c語言中,咱們把以一個分號結尾的一句話叫作一個c語言的語句,分號是語句結束的標誌。
    • 1.1.3  #include<stdio.h>
      • 1.1.3.1  注意
        • (1)以#號開頭
        • (2)不以分號結尾 
        • (3)# include」stdio.h」也是對的
      • 1.1.3.2  預處理
        • 這一行沒有分號,因此不是語句,在c語言中稱之爲命令行,或者叫作「預編譯處理命令」。 編譯預處理不是C語言的一部分,不佔運行時間,不要加分號。C語言編譯的程序稱爲源程序,它以ASCII數值存放在文本文件中。
      • 1.1.3.3  # include 「stdio.h」與#include <stdio.h>區別
        • <>搜索順序爲:系統目錄-->環境變量目錄-->用戶自定義目錄。
        • ""則是用戶自定義目錄-->系統目錄-->環境變量目錄.
      • 1.1.3.4  文件包含的考查點:
        • 這裏一個C語言程序是有兩個文件組成,分別是no1.c, no2.c。那麼no1.c中最開始有個#include」no2.c」他表示把第二個文件的內容給包含過來,那麼no1.c中調用add()函數的時候就能夠了把數值傳到no2.c中的被調用函數add()了。
        • 一個文件必需要有main函數。這句話錯了。例如:no2.c就沒有。
        • 頭文件必定是以.h結束的。這句話錯了。例如:no1.c中就是#include」no2.c」以.c結尾的。
    • 1.1.4  註釋
      • 程序中以 /*開頭而且以*/結尾的部分表示程序的註釋部分,註釋能夠添加在程序的任何位置,爲了提升程序的可讀性而添加,但計算機在執行主函數內容時徹底忽略註釋部分,換而言之就是計算機當作註釋部分不存在於主函數中。
      • 注意:1.F      //      /*
      • */
      • 2.F      /*    /*  */     */
      • 3.T     //    //
  • 1.2  C程序的生成過程
    • C程序是先由源文件經編譯生成目標文件,而後通過鏈接生成可執行文件。  
    • 編譯過程
    • 源程序的擴展名爲 .c  -(編譯)-> 目標程序的擴展名爲  .obj  -(鏈接)->可執行程序的擴展名爲 .exe 。
  • 1.3  標識符
    • 概念
      • 在編寫程序時,必須爲函數、變量等命名,這個名字稱爲標識符。
    • 1.3.1  標識符分類(都是·小寫)
      • ①關鍵字(32個)(有固定含義,不可改變)
        • 類型說明符:int,float,double等
        • 語句定義符:if,for,while等
      • ②預約義標識符(有特殊含義,能夠改變)
        • 庫函數的名字:printf , scanf 等
        • 編譯預處理命令名:include等
      • ③用戶自定義的標識符  
        • ⅰ格式合法,ⅱ不能使用關鍵字,ⅲ見名知意
    • 1.3.2  關鍵字
      • 關鍵字是具備特定含義的,專門用來講明c語言特定成分的一類標識符,不能用做用戶的標識符。
        • auto break       case        char          union
        • do         double     else        enum     extern
        • goto           if     int        long short
        • signed          static        sizeof      struct       switch
        • unsigned void for    while        typedef
        • continue    float     return          typedef     default
    • 1.3.3  預約義標識符
      • 預約義標識符在c語言中也有特定的含義,但能夠用做用戶標識符,預約義標識符分爲兩類:
        • (1)、庫函數名字,好比(printf,scanf,sin,isdigit等)
        • (2)、編譯處理命令名,好比(define,include)
    • 1.3.4  用戶標識符
      • 用戶根據須要本身定義的標識符稱爲用戶標識符。不管如何自定義標識符,都必須符合標識符的三條命名規則。
      • 注意:正常系統函數由_開頭,所以不建議自定義函數如下劃線開
    • 1.3.4.1  命名規則
      • C語言中標識符的命名規則以下:
        • 一、標識符只能由字母、數字、下劃線組成;
        • 二、標識符的第一個字母必須是字母和下劃線;(開頭)
        • 三、標識符區分大小寫字母,如If和if是兩個徹底不一樣的標識符。
      • 合法標識符以下:
        • A6       b_3   _mn   _
      • 非法的標識符以下:
        • ab#12, 8m , tr3:4 , yes no
      • 標識符不能與程序中具備特殊意義的關鍵字相同,
      • 不能與用戶編制的函數名、C語言庫函數相同,
      • 在程序中各類標識符儘可能不要重複,以便區分。
      • 選擇變量名和其餘標識符時,應注意作到 「見名知義」。

 

 

 

相關文章
相關標籤/搜索