開始學(xué)C語言啦!(本人已經(jīng)學(xué)過了)
我跟韓順平老師學(xué)的,課程是尚硅谷的

課程亮點(diǎn)和授課方式:
1) 課程通俗易懂,充分考慮零基礎(chǔ)的學(xué)員。
2) 課程成體系,并非星星點(diǎn)燈。
3) 高效而愉快的學(xué)習(xí) , 學(xué)習(xí)編程挺好玩。
4) 采用 應(yīng)用場(chǎng)景->C語言某個(gè)知識(shí)點(diǎn)->剖析原理->分析實(shí)現(xiàn)步驟 (圖解)->代碼實(shí)現(xiàn) 的步驟講解 [比如: C語言結(jié)構(gòu)體和指針]。
5) 有配套的 <<全國(guó)計(jì)算機(jī)二級(jí)C語言真題精講>> 視頻課程,讓 你既能系統(tǒng)學(xué)習(xí)編程,還能考級(jí)。
6) 課程目標(biāo):讓大家掌握本質(zhì) , 到達(dá)能從0基礎(chǔ)掌握編程,順利通 過C語言全國(guó)二級(jí)考試,能獨(dú)立完成難度不大C項(xiàng)目、C游戲的 水平。



C語言的誕生小故事?
1) 為什么發(fā)明C語言:C語言的誕生是和UNIX操作系統(tǒng)的開發(fā)密不可分的,原先的UNIX操作系統(tǒng)都是用匯編語言寫的,1973年 UNIX操作系統(tǒng)的核心用C語言改寫,從此以后,C語言成為編寫 操作系統(tǒng)的主要語言 。
2) C語言對(duì)其它語言的影響:很多編程語言都深受C語言的影響,比 如C++(原先是C語言的一個(gè)擴(kuò)展)、C#、Java、PHP、 Javascript、Perl、LPC 和 UNIX的C Shell等。?
3) 掌握C語言的人,再學(xué)其它編程語言,大多能很快上手,觸類旁通,很多大學(xué)將C語言作為計(jì)算機(jī)教學(xué)的入門語言。

C語言的特點(diǎn):
? 代碼級(jí)別的跨平臺(tái):由于標(biāo)準(zhǔn)的存在,使得幾乎同樣的C代碼可用于多種操作系統(tǒng),如 Windows、DOS、UNIX等等;也適用于多種機(jī)型。?
? 使允許直接訪問物理地址,對(duì)硬件進(jìn)行操作: 由于C語言允許直接訪問物理地址,可以 直接對(duì)硬件進(jìn)行操作,因此它既具有高級(jí)語言的功能,又具有低級(jí)語言的許多功能,C 語言可用來寫系統(tǒng)軟件(比如操作系統(tǒng), 數(shù)據(jù)庫, 殺毒軟件,防火墻, 驅(qū)動(dòng), 服務(wù)器程 序)。?
? C語言是一個(gè)有結(jié)構(gòu)化程序設(shè)計(jì)、具有變量作用域(variable scope)以及遞歸功能的 過程式語言?
? C語言傳遞參數(shù)可以是值傳遞(pass by value,值),也可以傳遞指針(a pointer ?passed by value, 地址)?
? C語言中,沒有對(duì)象,不同的變量類型可以用結(jié)構(gòu)體(struct)組合在一起?
? 預(yù)編譯處理(preprocessor), 生成目標(biāo)代碼質(zhì)量高,程序執(zhí)行效率高







課堂練習(xí):
1) 先使用vc2010 創(chuàng)建空項(xiàng)目 2) 要求開發(fā)一個(gè) hello2.c 程序,可以輸出 "某某 is studying c!" (1min)

編譯、鏈接和運(yùn)行詳解?
什么是編譯 ?
1) 有了C源文件,通過編譯器將其編譯成obj文件(目標(biāo)文件)。?
2) 如果程序沒有錯(cuò)誤,沒有任何提示,但在Debug目錄下會(huì)出現(xiàn)一個(gè)Hello.obj文件,該 文件稱為目標(biāo)文件。
什么是鏈接?
1) 有了目標(biāo)文件(.obj文件),通過鏈接程序?qū)⑵浜瓦\(yùn)行需要的c庫文件鏈接 成exe文件 (可執(zhí)行文件)。?
2) 如果程序沒有錯(cuò)誤,沒有任何提示,但在Debug目錄下會(huì)出現(xiàn)一個(gè)項(xiàng)目名.exe文件, 該文件稱為可執(zhí)行文件。
3) 為什么需要鏈接庫文件呢??
因?yàn)槲覀兊腃程序中會(huì)使用 C程序庫的內(nèi)容,比如 <stdio.h> <stdlib.h> 中的函數(shù)printf() system()等等, 這些函數(shù)不是程序員自己寫的, 而是C程序庫中提供的,因此需要鏈接?
4) 你會(huì)發(fā)現(xiàn)鏈接后,生成的.exe 文件,比obj 文件大了很多.

編譯、鏈接和運(yùn)行詳解 什么是運(yùn)行?
1) 有了可執(zhí)行的exe文件, 也稱為可執(zhí)行程序 (二進(jìn)制文件)?
2) 在控制臺(tái)下可以直接運(yùn)行 exe文件?
C程序開發(fā)注意事項(xiàng) 對(duì)修改后的hello.c源文件需要重新編譯鏈接,生成新的exe文件后,再執(zhí)行,才能生 效。

C程序開發(fā)注意事項(xiàng)?
1) C程序的主體結(jié)構(gòu)說明?
#include ...?
void main() { // {} 花括號(hào)包括的內(nèi)容, 稱為函數(shù)體?
語句1;?
語句2;?
}?
2) C程序源文件以“c”為擴(kuò)展名。?
3) C程序的執(zhí)行入口是main()函數(shù)。?
4) C語言嚴(yán)格區(qū)分大小寫。?
5) C程序由一條條語句構(gòu)成,每個(gè)語句以“;”結(jié)束?
6) 大括號(hào)都是成對(duì)出現(xiàn)的,缺一不可

C轉(zhuǎn)義字符:
C常用的轉(zhuǎn)義字符?
1) \t :一個(gè)制表位,實(shí)現(xiàn)對(duì)齊的功能?
2) \n :換行符?
3) \\ :一個(gè)\?
4) \" :一個(gè)"?
5) \' :一個(gè)'?
6) \r :一個(gè)回車
printf("張無忌趙敏周\r芷若小昭");//輸出?芷若小昭敏周



常見問題和解決方法:
3) 錯(cuò)誤總結(jié) 學(xué)習(xí)編程最容易犯的錯(cuò)是語法錯(cuò)誤。
C語言要求必須按照語法規(guī)則編寫代碼。
如果你的程序違反了語法規(guī)則,例如:忘記了分號(hào)、大括號(hào)、引號(hào),
或者拼錯(cuò)了單詞, 中文;和英文; C編譯器都會(huì)報(bào)語法錯(cuò)誤。
嘗試著去看懂編譯器會(huì)報(bào)告的錯(cuò)誤信息。
注釋(comment) 介紹:?
用于注解說明解釋程序的文字就是注釋,注釋提高了代碼的閱讀性;?
注釋是一個(gè)程序員必須要具有的良好編程習(xí)慣。將自己的思想通過注釋先整理出來 ,再用代碼去體現(xiàn)。?
C中的注釋類型:
1) 單行注釋 //
2) 多行注釋 /**/

注釋(comment) 單行注釋:
基本格式 格式: //注釋文字
塊注釋:
基本格式 格式: /* 注釋文字 */?
使用細(xì)節(jié):
1) 對(duì)于單行和塊注釋,被注釋的文字,不會(huì)被執(zhí)行。?
2) 塊注釋里面不允許有塊注釋嵌套?
3) 快捷鍵可以配置 成自己習(xí)慣的.(課后自己配置一下)

規(guī)范的代碼風(fēng)格?
正確的注釋和注釋風(fēng)格: ?
1) 如果注釋的一個(gè)函數(shù),可以使用塊注釋?
2) 如果注釋函數(shù)中的某一個(gè)語句,使用單行。?
正確的縮進(jìn)和空白:
1) 使用一次tab操作,實(shí)現(xiàn)縮進(jìn),默認(rèn)整體向右邊移動(dòng),時(shí)候用shift+tab整體向左移?
2) 運(yùn)算符兩邊習(xí)慣性各加一個(gè)空格。比如:2 + 4 * 5。?
3) 也可以使用代碼格式化快捷鍵 ctrl+alt+L // 可以自己設(shè)置?
塊的風(fēng)格:
1.行尾風(fēng)格
int max(int a, int b) {
if(a > b) {
return a;?
} else {
return b;?
????????}
}
2.次行風(fēng)格
int max(int a, int b)
{
if(a > b)
????{
return a;
????}
else
????{
return b;
????}
}


課后練習(xí):
1) 獨(dú)立編寫Hello world 程序?
2) 將個(gè)人的基本信息(姓名、性別、籍貫、住址)打印到控制臺(tái)上輸出。各條信 息分別占一行(使用轉(zhuǎn)義字符,在一個(gè)printf語句搞定)。?

3) 編寫程序,使用char類型,分別保存 \n \t \r \\ 1 2 3等字符,并打印輸出【后 面學(xué)習(xí)了char后在完成】?
4) 簡(jiǎn)述C程序 運(yùn)行機(jī)制,說明他的幾個(gè)過程,并解釋。