天天看點

C語言入門程式設計學習———文法與語句

1. C語言概述

    1.1  C語言功能

a. 運作效率高,現在已經代替了彙編語言。

b. 程式設計效果和進階語言基本一緻(JAVA)。

c. 代碼量小,速度快,功能強大。

d. C語言是最廣泛使用的系統程式設計語言。

    1.2  編譯  

       編譯(Compile):編譯器識别代碼中的詞彙、句子以及各種特定的格式,并将他們轉換成計算機能夠識别的二進制形式的過程。

      C程式編寫完成後,首先通過編譯轉換成目标檔案,然後通過C語言函數庫連接配接建立可執行程式,最後才可以執行該程式。   

檔案類型 解釋 表示形式
源檔案 使用者建立檔案  .c
目标檔案 編譯器的輸出結果 .o 或者 .obj
頭檔案     含有函數聲明和預處理語句,用于幫助通路外部定義的函數。 .h
可執行檔案 連接配接器的輸出結果。 .exe

        IDE(Integrated Development Environment,內建開發環境)。

2. C語言結構和文法

    2.1  Hello world執行個體    

#include<stdio.h>        // 以#開始的語句叫做預處理指令,告訴編譯器在編譯前要包含的頭檔案。stdio.h包含輸入輸出語句相關函數。

int main()                      //主函數,程式執行的入口。mian()函數可以傳回傳回值也可以不傳回,如果不傳回的話使用關鍵詞void。

{

       printf(“Hello world!\n”);  //列印函數,在螢幕上顯示消息,并換行(\n)。

       return 0;               //終止main函數,并傳回值0。

}    

scanf():從标準輸入讀取資訊函數    &用于指明在記憶體中的位置。

printf():标準輸出函數

C語言入門程式設計學習———文法與語句
  舉例:  double sum=168.1790021      printf(“%7.2f”,sum);        輸出結果為:  _ 168.18         .2 為小數點後的位數,7為總位數 

    2.2  C資料類型

基本類型:算術類型,包括兩種類型:整數類型和浮點類型。
枚舉類型:算術類型,被用來定義在程式中隻能賦予其一定的離散整數值的變量。
void 類型:類型說明符 void 表明沒有可用的值。
派生類型:包括:指針類型、數組類型、結構類型、共用體類型和函數類型。

    2.3  常量與變量

(1) 變量的名稱可以由字母、數字和下劃線字元組成。但必須以字母或下劃線開頭,C語言區分大小寫,是以變量price與變量PRICE是兩個不同的變量。                                               

(2) 常量是固定值,可以是任何的基本資料類型,常量的值在定義後不能進行修改。                                               

(3) 全局變量和局部變量

 全局變量
定義所有函數外部;從定義的時候開始配置設定空間,到整個代碼執行結束,空間就被釋放;
作用域:從變量定義位置以下,所有函數都能使用和修改;
初始值:預設為0;
局部變量
定義在函數内部或者複合語句中;從局部變量所在的函數被調用,才會為其配置設定空間;
作用域:隻能用于變量所在函數的内部或者複合語句中;
初始值:預設為随機數;

注意:全局變量與局部變量重名,會怎麼樣?

  采取就近原則,局部變量所在的函數内部,會優先選擇使用局部變量;

    2.4  形參與實參

         1) 形參隻在函數被調用時才會配置設定記憶體,調用結束後,立刻釋放記憶體,隻有在函數内部使用有效。

         2) 實參可以是常量、變量、表達式、函數等類型的資料,在進行函數調用時,必須有确定的值,以便把這些值傳送給形參,應提前用指派、輸入等辦法使實參獲得确定值。                                                               

         3) 實參和形參在數量、類型、順序上必須嚴格一緻,否則會發生“類型不比對”。函數調用中發生的資料傳送是單向的,隻能把實參的值傳送給形參,而不能把形參的值反向傳送給實參。 是以在函數調用過程,形參的值發生改變,而實參中的值不會變化。

    2.5  存儲類型關鍵字

        (1) auto關鍵字

            auto關鍵字是所有局部變量預設的存儲類。隻能用在函數内,隻能修飾局部變量。

        (2) register關鍵字

             register關鍵字用于定義存儲在寄存器中而不是RAM中的局部變量。寄存器隻用于需要快速通路的變量。

        (3) static關鍵字

            static關鍵字訓示編譯器在程式的生命周期内保持局部變量的存在,而不需要在每次它進入和離開作用域時進行建立和銷毀。 是以,使用static修飾局部變量可以在函數調用之間保持局部變量的值。當static修飾全局變量時,會使變量的作用域限制在聲明它的檔案内。  

       (4) extern關鍵字

           extern用于提供一個全局變量的引用,全局變量對所有的程式檔案都是可見的。extern是用來在另一個檔案中聲明一個全局變量或函數。即适用于兩個檔案以上。

    2.6  C運算符

運算符是一種告訴編譯器執行特定的數學或邏輯操作的符号。

算術運算符: +  -  *  /  %  ++  --

關系運算符:  ==  !=  >  <  >==  <==

邏輯運算符:  &&  ||  !

位運算符   :  &   |   ^  ~  <<  >>

指派運算符:  = +=  -=  *=  /=

雜項運算符:  sizeof() 傳回變量值    & 傳回位址    * 指向變量    ?: 條件表達式

3.  語句

    1.  if語句

#include <stdio.h>

int main()

{

          int a, b, max;

printf("輸入兩個整數: ");

scanf("%d %d", &a, &b);

if(a>b) max=a;

else max=b;

printf("%d 和%d 的較大值是: %d\n", a, b, max);

return 0;

    2.  switch語句

     一個 switch 語句允許測試一個變量等于多個值時的情況。每個值稱為一個 case,且被測試的變量會對每個switch case 進行檢查。 

    3.  while循環

#include <stdio.h>

int main()

{

int i=1, sum=0;

while(i<=100)

{

        sum+=i;

        i++;

}

        printf("%d\n",sum);

        return 0;

}

    4.  for循環

#include <stdio.h>

int main()

{

int i=1, sum=0;

while(i<=100)

{

    sum+=i;
    i++;

 }

printf("%d\n",sum);

return 0;

}

    5.  do while循環

#include <stdio.h>

int main ()

{

    int a = 10;

    do{

                  printf("a 的值: %d\n", a);

                  a = a + 1;

            }while( a < 20 );

            return 0;

}

    6.  循環控制語句

break語句 終止循環或 switch 語句,程式流将繼續執行緊接着循環或 switch 的下一條語句.
continue語句 告訴一個循環體立刻停止本次循環疊代,重新開始下次循環疊代。
goto語句 将控制轉移到被标記的語句。但是不建議在程式中使用 goto 語句。
下一篇: pyqt_Matplot