Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
C-1_C.pdf
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
hkelearning
December 19, 2011
34
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
C-1_C.pdf
hkelearning
December 19, 2011
More Decks by hkelearning
See All by hkelearning
C-1_C.pdf
hkelearning
0
96
Featured
See All Featured
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
1.1k
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.6k
HDC tutorial
michielstock
2
960
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
600
We Have a Design System, Now What?
morganepeng
55
8.4k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.4k
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
1
570
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
6
1.2k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.9k
KATA
mclloyd
PRO
35
16k
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
500
Transcript
1 第1章 C語言簡介 C的發展史 C程式初體驗 C程式設計基本注意事項 上機實習課程
2 C的起源 1972年貝爾實驗室的Dennis Ritchie以B語言為基 礎,並持續改善它。 除了保留BCLP及B語言中的許多觀念外,更加入 了資料型態的觀念及其它功能,並且將它發表為 「C語言」。
Dennis Ritchie發展出來的C語言乃是架構在DEC PDP-11電腦上,最初的目的主要是做為開發Unix 作業系統的工具。 由於C語言這樣實用的工具使得Unix作業系統開 發難度降低且進行順利,所以也開始應用在其它 的程式設計領域,因此也使得C語言迅速受到眾 人的矚目。 1-1 C的發展史
3 C的特色與優點(1) 程式可攜性高,具有跨平台能力 – 只要是使用ANSI C定義的標準函數庫來開發,而其中 不包含一些中斷處理或廠商單獨提供的函數庫,那麼 所開發出來的程式將具有相當高的可攜性 (Portable)。
– 如果將開發出來的C語言程式碼拿到不同的作業平台 上重新編譯,隨即能夠產生一個功能相同的可執行程 式,而程式開發者不再需要重新編撰程式碼內容。 1-1 C的發展史
4 C的特色與優點(2) 體積小,執行效率高 – 相較於Java、Visual Basic、Pascal等程式語言來說, C語言的執行效率相當高,執行時也相當穩定。 具低階處理能力
– 雖然這些較低階的操作技巧在學習上並不容易,不過 卻是其它高階程式語言難以達成的工作項目。這也是 C功能較其它語言強大的地方。 作為學習其它語言的基礎 – C語言堪稱是「程式語言之父」,例如C++、Java、 PHP與C#等程式語言,它們的基本語法及某些程式觀 念都與C十分類似。 1-1 C的發展史
5 C程式執行過程簡介 過程通常可區分為「編輯」、「編譯」、「連 結」、「載入」與「執行」五個階段。 目前多半是使用所謂的整合開發環境(IDE, Integrated Development Environment)來作為C的
開發環境。 編寫完的程式碼,電腦是看不懂的,必需翻譯成電 腦能懂的機器語言模式。 由於C是一種編譯式語言,也就是必須使用編譯 器將原始程式翻譯成「目的碼」,副檔名為 「*.obj」。 1-1 C的發展史
6 由於使用者編譯的C程式中可能會使用到函數 庫(副檔名為*.lib)中的函數,或者一個程式 可能分為數個檔案來開發,這些檔案在編輯為 目的檔後,必須透過連結器(linker),最後才會 產生可執行檔(副檔名為*.exe)。 最後載入過程將可執行檔與相關的函數庫元件, 從磁碟中載入到記憶體中,就可準備執行了。
1-1 C的發展史
7 C程式初體驗 1-2 C程式初體驗 編寫程式區 功能表 工具列 專案瀏 覽區 狀態列
編譯器輸出 紀錄區 程式輸入游標
8 程式碼的編寫與儲存 輸入完以上程式碼後,請執行「檔案/儲存」指令或 是工具列上的「儲存」 鈕,並以「Ch01_01」為 檔名,「.c」為副檔名進行檔案儲存。 1-2 C程式初體驗 01
#include <stdio.h> 02 #include <stdlib.h> 03 04 int main(void) 05 { 06 printf("C程式初體驗\n");/* 呼叫printf()函數 */ 07 08 system("pause"); 09 return 0; 10 }
9 程式碼的編譯與執行 按下工具列中的編譯按鈕 或執行「執行/編 譯」指令,然後會出現以下視窗,代表檔案正 在編譯中,如果編譯成功,原本的Compiling 會出現Done字樣: 1-2 C程式初體驗
編譯進行中,這還包 括連結與載入過程
10 請執行「執行/執行」指令或按下執行鈕 。 將會看到本程式的執行結果: 1-2 C程式初體驗
11 程式碼快速解析 程式範例:第一個程式碼範例:CH01_01.c 1-2 C程式初體驗
12 1-2 C程式初體驗 第1~2行:利用#include指令是前置處理指令的一種,在編譯時 可將<stdio.h>標頭檔與<stdlib.h>標頭檔含括進來。 第4行:C中的main()函數是程式的進入點,而程式的內容則包 含在main()下的大括弧{}內,而「void」表示此函數不需要任何 的引數,int是宣告函數回傳值是整數資料型態。 第5~10行:表示此函數的所有指令內容。當然在這兩個大括弧 間也可以完全沒有任何指令。
第6行:printf()是C語言的輸出函數指令,會將括號中引號「"」 內的字串輸出到螢幕上,而「/n」則是跳脫字元的一種,有換 行的功用,這些輸出功能會在第三章中為您深入說明。至於 「/*」與「*/」符號所包括的部份稱為「註解」。
13 1-2 C程式初體驗 第8行:由於Windows系統正常結束後,都會直接關掉執行視 窗,執行畫面會一閃即逝,根本看不出執行結果。這時可利用 system()函數呼叫系統參數pause會讓程式執行到此先暫停, 並且在執行視窗中會印出"請按任意鍵繼續…"等字,當您敲下 任意鍵後,程式便會往下執行。 第9行:因為主程式被宣告為int資料型態,必須回傳(return)一 個值,在習慣上是傳回0作為程式執行完畢,在ANSI
C語法中, 如果這行指令省略,也會自動視為是「return 0;」指令。
14 妥善利用函數 當程式開始執行時,一定會先執行main()這個 函數,而不管它在程式中的任何位置,編譯器 都會找到它才開始編譯程式內,因此main()又 稱為「主函數」,架構如下所示: 1-3 C程式設計基本注意事項 01
int main( ) 02 { 03 指令 1; 04 指令 2; 05 . 06 . 07 } C語言程式的開頭 C語言程式的內容
15 其中第02行的左大括弧{表示main()函式開始, 第07行的右大括弧}則表示main()函式的結束。 另外在這兩個大括弧間也可以完全沒有任何內 容,因此一個最簡單的C程式可以如下: 1-3 C程式設計基本注意事項 01
int main( ) 02 { 03 } 完全無任何的陳述
16 底下列出常見的C內建標頭檔供做參考: 1-3 C程式設計基本注意事項 標頭檔 說明 <math.h> 包含數學運算函數 <stdio.h>
包含標準輸出入函數 <stdlib.h> 標準函數庫,包含各類基本函數。 <string.h> 包含字串處理函數 <time.h> 包含時間、日期的處理函數
17 適當加以縮排 在同一行指令中,對於完整不可分割的單元稱 為字符(token),兩個字符間必須以空白鍵、 tab鍵或輸入鍵區隔。請看以下指令範例: 1-3 C程式設計基本注意事項 Return0; /*不合法的指令*/
printf ( "C程式初體驗\n") ; /*合法的指令*/ printf("C程式初體驗!!\n"); system("pause"); return 0; /*合 法的指令*/ print f("C程式初體驗!!\n"); /*不合法的指令*/
18 像是在主程式中包含子區段,或者子區段中又 包含其它子區段時,這時就可以透過縮排來區 分程式碼的層級。 簡單來說,遇到大括號時就要考慮縮排。 如以下巢狀if else指令,透過縮排的效果讓,
讓區塊層次更分明: 1-3 C程式設計基本注意事項
19 1-3 C程式設計基本注意事項
20 盡量加上註解 註解不僅可以幫助其他的程式設計師了解程式 內容,在日後進行程式維護時,詳盡的註解也 能夠省下不少維護時間與成本。 在C中「/*」與「*/」間的文字都屬於註解內容。 另外註解也能夠跨行使用。如下所示: 1-3
C程式設計基本注意事項 /* 這是我的第一個C程式 它會顯示一小段簡單的文字 */ 中間的內容編譯器全部不予理會
21 上機實習課程 上機實習範例:CH01_02.c 1-4 上機實習課程
22 執行結果 1-4 上機實習課程