1. 程式人生 > >第 2 章 C語言概述

第 2 章 C語言概述

2.1C語言的一個簡單例項

#include <stdio.h>
int main(void)           /*一個簡單的C程式*/
{
	int year;            /*宣告一個名為year的變數*/
	year = 2018;         /*賦值為2018*/

	printf("%d,Hello Wolrd!\n", year);	/*使用printf()函式*/
	return 0;
}

2.2例項說明

一、#include 指示和標頭檔案

#include <stdio.h>

   這是程式的第一行。該語句的作用相當於您在該檔案中該行所在的位置鍵入了檔案stdio.h 的完整內容。

   #include 語句是C預處理指令的一個例子。C編譯器在編譯之前要對原始碼做一些準備工作,稱為預處理。

   stdio.h 檔案作為所有C編譯包的一部分提供,它包含了有關輸入和輸出函式的資訊供編譯器使用。

二、main() 函式

int main(void)	

   這行程式碼聲明瞭一個main 函式。一個C程式總是從main() 函式開始執行的。int 指明瞭main() 函式的返回型別;圓括號表明main() 是一個函式的名字;圓括號內一般包含傳遞給函式的資訊;void表示main() 函式不接受任何引數。

三、註釋

/*一個簡單的C程式*/

   包含在/**/之間的部分是程式註釋。在/*和*/之間的所有內容都會被編譯器忽略掉。較長的註釋可以單放一行,或者是多行。

   C99增加了另一種風格的註釋:

//這種註釋必須被限制在一行內,一行的結尾標誌註釋的結束

四、花括號、程式體和程式碼塊

{
    ...
}

      花括號劃定了main() 函式的界限。通常,所有的C函式都是用花括號來表示函式體的開始和結束。

五、宣告

int year;

   程式中這一行叫做宣告語句。該語句宣告一個名為year 的變數,且該變數是int 型別。 本例中year 是一個識別符號(identifier),即為一個變數、函式或其他實體所選的名字。

1.資料型別

   C語言可以多種資料型別。把一個變數宣告為整數型別或字元型別是計算機正確地儲存、獲取和解釋該資料的基本前提。

2.名字的選擇

   C語言規定,合法的識別符號必須由英文字母或下劃線開頭,是字母、數字和下劃線的序列,且有長度限制。C語言識別符號分為三類:關鍵字、保留識別符號、使用者識別符號。關鍵字是C語言中的詞彙,如int 、void 等。保留識別符號包括那些以下劃線字元開始的識別符號和標準庫函式的名字,如printf。

  • 變數名應儘量有意義,如果名字不能表達清楚,可以用註釋解釋變數所代表的意思
  • 不能是關鍵字,一般不使用保留識別符號
  • 一般小寫

3.宣告變數的四點好處

  • 把所有變數放在一起,可以讓讀者更容易掌握程式的內容
  • 開始編寫程式前,考慮一下需要宣告的變數會促使您做一些計劃工作
  • 可以幫助避免程式中出現"變數名拼寫錯誤類"的問題
  • 如果沒有宣告變數就使用,將不能編譯您的C程式

六、賦值

year = 2018;

   將2018賦給變數year。前面的宣告語句在計算機記憶體中為變數year 分配了空間,該賦值語句在此空間中為變數儲存了一個值。

七、printf() 函式

   圓括號表明printf 是一個函式名。圓括號中的內容是從函式main() 傳遞到函式printf() 的資訊,這樣的資訊被稱為引數,更完整的名稱是函式的實際引數。

printf("%d,Hello Wolrd!\n",year);

   %d是一個佔位符,其作用是指示輸出year 值的位置。%告訴程式把一個變數在這個位置輸出,d 告訴程式將輸出一個十進位制整數變數。

八、return 語句

return 0;

   return 語句是程式的最後一個語句。在int main(void) 中int 表示main() 函式的返回值應該是一個整數。C標準要求帶有返回值的C語言函式要使用一個return 語句,該語句包括關鍵字return ,後面緊跟著要返回的值,然後是一個分號。

2.3一個簡單程式的結構

   函式的描述由函式頭和函式體組成。函式頭包括預處理語句和函式名;函式體位於花括號{ } 中並由一系列語句組成。

/*函式頭*/
#include <stdio.h>
int main(void)
{
	/*函式體*/
	return 0;
}

2.4 使程式可讀的技巧

  • 選擇有意義的變數和使用註釋
  • 使用空行分隔一個函式概念上的多個部分
  • 每個語句用一行

2.5多個函式

#include <stdio.h>
void hello_wolrd(void);	/*函式原型*/
int main(void)
{
	printf("What to say?\n");
	hello_wolrd();
	printf("Hello Mr.Gold\n");
	return 0;
}

void hello_wolrd(void)	/*函式定義的開始*/
{
	printf("Hello World!\n");
}

   hello_wolrd() 函式在程式中出現了3次。第一次出現在函式原型中,通知編譯器要用到該函式;第二次是在main() 函式中以函式呼叫形式出現;最後,程式給出了函式的定義,即函式本身的原始碼。

2.6總結

   C語言程式是由一個或多個函式組成的。每一個C程式都必須包含一個名為main() 的函式,程式總是從main() 函式開始執行。一個簡單的函式結構如下:函式頭後面緊跟一個開始花括號{ ,後面是構成函式體的語句,然後是起終止作用的結束花括號。

   每個C語句都是一個針對計算機的指令。宣告語句為變數指定一個名字並指明該變數中儲存的資料型別。變數名是識別符號的一種。賦值語句將值賦給變數。函式呼叫語句會導致所指定函式的執行。當被調函式執行完畢後,程式會返回到函式呼叫之後的語句繼續執行。

   printf() 函式用於輸出語句和變數的值。

   一門語言的語法是一套規則,用於管理這種語言中的合法語句組織在一起的方式。語句的語義就是它所表達的意思。編譯器可以幫助你發現語法上的錯誤,但是程式裡的語義錯誤只有在編譯完之後才能從程式的行為中表現出來。檢查語義錯誤可能包括跟蹤程式的狀態,即程式每執行一步之後所有變數的值。