- C語言從入門到精通(第4版)
- 明日科技編著
- 1623字
- 2023-09-26 16:27:44
1.3 一個簡單的C程序

視頻講解
在步入C語言程序世界之前,讀者不要對C語言產生恐懼感,覺得這種語言應該是學者或研究人員的專利。C語言是人類共有的財富,是普通人只要通過努力學習就可以掌握的知識。下面通過一個簡單的程序來看一看C語言程序是什么樣子。
【例1.1】 一個簡單的C程序。(實例位置:資源包\TM\sl\1\1)
本實例程序實現的功能只是顯示一條信息“Hello, world! I'm coming!”,通過這個程序可以初窺C程序樣貌。雖然這個簡單的小程序只有7行,卻充分說明了C程序是由什么位置開始、什么位置結束的。

運行程序,顯示效果如圖1.1所示。

圖1.1 一個簡單的C程序
現在來分析一下上面的實例程序。
1. #include指令
實例代碼中的第1行:
#include<stdio.h>
這個語句的功能是進行有關的預處理操作。include稱為文件包含命令,后面尖括號中的內容稱為頭部文件或首文件。有關預處理的內容,將會在本書第13章中進行詳細講解,在此讀者只需先對此概念有所了解即可。
2. 空行
實例代碼中的第2行是空行。
C語言是一個較靈活的語言,因此格式并不是固定不變、拘于一格的。也就是說,空格、空行、跳格并不會影響程序。有的讀者就會問:“為什么要有這些多余的空格和空行呢?”其實這就像生活中在紙上寫字一樣,雖然拿來一張白紙就可以在上面寫字,但是通常還會在紙的上面印上一行一行的方格或段落,隔開每一段文字,自然就更加美觀和規范。合理、恰當地使用這些空格、空行,可以使編寫出來的程序更加規范,對日后的閱讀和整理發揮著重要的作用。在此也提醒讀者,在寫程序時最好將程序書寫得規范、干凈。
注意
不是所有的空格都沒有用,如兩個關鍵字之間要用空格隔開(else if)。這種情況下如果將空格去掉,程序就不能通過編譯。這里大家有個感性認識就好,在以后章節的學習中會慢慢領悟。
3. main函數聲明
實例代碼中的第3行:
int main()
這一行代碼代表的意思是聲明main函數為一個返回值,是整型的函數。其中的int稱為關鍵字,這個關鍵字代表的類型是整型。關于數據類型的內容將會在本書的第3章進行講解,而函數的內容將會在本書的第9章進行詳細介紹。
在函數中,這一部分稱為函數頭部分。在每個程序中都會有一個main函數,那么main函數是什么作用呢?main函數就是一個程序的入口部分。也就是說,程序都是從main函數頭開始執行的,然后進入main函數中,執行main函數中的內容。
4. 函數體
實例代碼中的第4~7行:

在上面介紹main函數時,提到了一個名詞—函數頭。讀者通過這個詞可以進行一下聯想:既然有函數頭,那也應該有函數的身體吧。沒錯,一個函數分為兩個部分:一是函數頭,一是函數體。
程序代碼中的第4行和第7行這兩個大括號就構成了函數體,函數體也可以稱為函數的語句塊。在函數體中,也就是第5行和第6行這一部分就是函數體中要執行的內容。
5. 執行語句
函數體中的第5行代碼:

執行語句就是函數體中要執行的動作內容。這一行代碼是這個簡單的例子中最復雜的。該行代碼雖然看似復雜,其實也不難理解,printf是產生格式化輸出的函數,可以簡單理解為向控制臺進行輸出文字或符號。括號中的內容稱為函數的參數,在括號內可以看到輸出的字符串“Hello, world! I'm coming!”,其中還可以看到“\n”這樣一個符號,稱之為轉義字符。轉義字符的內容將會在本書的第3章進行介紹。
6. return語句
函數體中的第6行代碼:
return 0;
這行語句使main函數終止運行,并向操作系統返回一個整型常量0。前面介紹main函數時說過返回一個整型返回值,此時0就是要返回的整型值。在此處可以將return理解成main函數的結束標志。
7. 代碼的注釋
在程序的第5行和第6行后面可以看到一段關于這行代碼的文字描述:

這段對代碼的解釋描述稱為代碼的注釋。代碼注釋就是用來對代碼進行解釋說明,方便日后自己閱讀或者他人閱讀源程序時理解程序代碼的含義和設計思想。其語法格式如下:
/*其中為注釋內容*/
說明
雖然沒有強行規定程序中一定要寫注釋,但是為程序代碼寫注釋是一個良好的習慣,這會為以后查看代碼帶來非常大的方便。如果程序交給別人看,他人可以快速地掌握程序思想與代碼作用。因此,編寫規范的代碼格式和添加詳細的注釋,是一個優秀程序員應該具備的好習慣。
- Practical Data Analysis Cookbook
- Java從入門到精通(第4版)
- Linux網絡程序設計:基于龍芯平臺
- 鋒利的SQL(第2版)
- Modern JavaScript Applications
- 從零開始學C#
- Natural Language Processing with Java and LingPipe Cookbook
- Test-Driven JavaScript Development
- Processing創意編程指南
- 區塊鏈項目開發指南
- Learning Nessus for Penetration Testing
- 原型設計:打造成功產品的實用方法及實踐
- Arduino Electronics Blueprints
- Learning WordPress REST API
- Java EE程序設計與開發實踐教程