? ? ? ? 這本書算是一部經(jīng)典贰锁,主要是因為好多學(xué)校的考研指定指導(dǎo)書就是它吧各谚。雖然作為一名大學(xué)畢業(yè)生玫坛,在大學(xué)期間第一門計算機(jī)的語言課就是C,但是由于在學(xué)校期間自己動手思考的時候基本沒有反惕,所以揮霍了太多的學(xué)習(xí)時光尝艘,悔之晚矣?一次的學(xué)習(xí)失敗姿染,可能是由于沒有仔細(xì)思考背亥,自以為很懂或者懂了,計算機(jī)乃至做學(xué)問其實就是”紙上得來終覺淺悬赏,絕知此事要躬行”狡汉。躬行,躬行闽颇。欲練此功盾戴,必先自躬! ?
哎兵多,為了斷了自己做事情不認(rèn)真敷衍的習(xí)慣尖啡,從頭再來橄仆。便學(xué)習(xí)邊記筆記,走過路過的朋友可婶,覺得有借鑒的地方就了解一下沿癞,準(zhǔn)備勵志做from學(xué)渣to學(xué)霸援雇。
第一章 ???C語言概述
1.1不外乎一些發(fā)展過程(幾乎沒啥yong矛渴,一會隨便看看)
1978年一個實驗室AT&T(據(jù)說是全球首屈一指的通訊控股公司,美國的一下百年企業(yè))惫搏,說白了就想中國的聯(lián)通具温、移動、電信似的筐赔。有個挺牛的科學(xué)家铣猩,不,兩個B.W.K和D.M.R(愛誰誰茴丰,不認(rèn)識)达皿,寫了本書定義了一定的標(biāo)準(zhǔn),但并不是標(biāo)準(zhǔn)C贿肩,直到美國國家標(biāo)準(zhǔn)協(xié)會ANSI(American National Standards Institute)峦椰,才在1983年像樣。
??? 所以說吧汰规,做事情標(biāo)準(zhǔn)化很重要汤功,有規(guī)則,按照規(guī)則做事溜哮,我們在這方面還任重而道遠(yuǎn)啊滔金。
1.2 看看這本書定稿的時候所謂的當(dāng)代最優(yōu)秀的程序設(shè)計語言都有啥?
?? “當(dāng)代”原來是指C語言問世的年代啊茂嗓,插播一段:
對啊餐茵,說了這么多C語言到底干啥用的啊,說白了就是計算機(jī)一個強(qiáng)大的計算功能提在哪里述吸,你說:“你給我算個數(shù)”钟病,“啊,呸刚梭,小伙子你說的是啥”肠阱,計算機(jī)硬件底層的運(yùn)算可能無法與人便捷的溝通交流,這時候一種能夠幾乎人類自然語言和計算機(jī)語言之間的語言就應(yīng)運(yùn)而生了朴读。屹徘。。衅金。噪伊。未完待續(xù)吧簿煌,夠了。
C一開始用于UNIX系統(tǒng)(因為有些標(biāo)準(zhǔn)就是剛才寫書的那兩個K鉴吹,R前輩寫的)姨伟,80年代進(jìn)入其他操作系統(tǒng),并被廣泛應(yīng)用豆励。
不過如今的為滿足各種用戶需求及喜好的很么Pathon夺荒、Java、C#等等良蒸。
畫外音---啥事UNIX技扼?百度說:“UNIX操作系統(tǒng)(尤尼斯),是一個強(qiáng)大的多用戶嫩痰、多任務(wù)操作系統(tǒng)剿吻,支持多種處理器架構(gòu),按照操作系統(tǒng)的分類串纺,屬于分時操作系統(tǒng)”又引出了什么是分式操作系統(tǒng)(采用時間片輪轉(zhuǎn)的方式同時為幾個丽旅、幾十個甚至幾百個用戶服務(wù))太細(xì)的不說了,再說就扯遠(yuǎn)了纺棺。又想起了上學(xué)時上操作系統(tǒng)課榄笙,腦袋里就是漿糊啊。
1.3 版本問題五辽,這個可是涉及到各種編譯環(huán)境的問題需要注意办斑!
這個圖(圖片來源:http://www.crifan.com/summary_c_language_version_c89_amd1_c99_c11)
大概看一下吧,用的最常用的和經(jīng)典的就是C89和C99版本的杆逗,小鵬友上學(xué)的時候基本都是按照這個版本操作的乡翅。
1.4特點(diǎn)還是要了解的
1)簡潔、緊湊罪郊。32個關(guān)鍵字蠕蚜,關(guān)鍵字要小寫
2)運(yùn)算符豐富。括號悔橄、賦值靶累、逗號都是運(yùn)算符
3)數(shù)據(jù)結(jié)構(gòu)豐、控制語句癣疟、語法限制不太嚴(yán)格挣柬。。睛挚。邪蛔。
4)能直接訪問物理地址,厲害不扎狱。進(jìn)行bit位操作
5)目標(biāo)代碼質(zhì)量高侧到、效率高
8)跟匯編語言比可移植性好勃教。
缺點(diǎn)就不講了。自由就會導(dǎo)致的一些問題匠抗。
1.5面向?qū)ο蟮脑O(shè)計吧故源,一直不太清楚,理解不深刻汞贸,這次好好注意一下绳军。
說的就是C++的事,作為對C的補(bǔ)充和完善提供了面向?qū)ο笤O(shè)計的程序語言著蛙。
1.6 C和C++的區(qū)別這次細(xì)細(xì)研究一下
先學(xué)C在學(xué)C++就會好一些删铃。
1.7 簡單的C程序就算是介紹也要逼著研究能寫下來
#include
#include
#include
//使用sin函數(shù)輸出一個數(shù)x的sin(x)的結(jié)果result
//需要引入標(biāo)準(zhǔn)數(shù)學(xué)的函數(shù)庫math.h
//定義變量為雙精度浮點(diǎn)數(shù)float
int main()
{
??? //定義變量
??? double x,result;
??? //友好的輸入提示
??? printf("請輸入需要計算sin值的弧度(sin)\n");
??? //輸入接收變量
??? scanf("%lf",&x);
??? //計算
??? result=sin(x);
??? //輸出
??? printf("The result of sin(%lf) is %lf!\n",x,result);
??? return 0;
}
頭文件一般是由系統(tǒng)提供的耳贬。Stdio.h包含標(biāo)準(zhǔn)的輸入輸出函數(shù)
編譯型高級語言的特定先定義聲明后使用踏堡。
1.8 輸入輸出函數(shù)的寫法和理解很重要!擴(kuò)展的話可以去OnlineJudge(推薦一般開放性咒劲、友好型較好的浙江大學(xué)OJ-http://acm.zju.edu.cn/onlinejudge/?? 缺點(diǎn)是好像忘了用戶名密碼就死翹翹了顷蟆,本人就好不容易蒙對的才找到組織)。
#include
#include
int max(int a,int b)
{
??? return a>b?a: b;
}
int main()
{
??? int a,b,c;
??? printf("Please input twonumber\n");
??? scanf("%d %d",&a,&b);
??? c=max(a,b);
??? printf("The max number is%d\n",c);
??? return 0;
}
1.9 結(jié)構(gòu)特點(diǎn)就是強(qiáng)化規(guī)范腐魂,套路帐偎,按部就班的操作吧。
1.10 更細(xì)的要求和規(guī)則蛔屹,閑言碎語也要講削樊,現(xiàn)如今大了大了反倒沒有了小學(xué)生學(xué)習(xí)的認(rèn)真勁兒,和規(guī)范兔毒。經(jīng)常劍走偏鋒漫贞,不是學(xué)習(xí)之道,學(xué)生不更年也要靜心啊育叁,呵呵哈嘿迅脐。
1.11字符集?不知所云-----------不過也得之道啊豪嗽、
字母谴蔑、數(shù)字、空白符龟梦、標(biāo)點(diǎn)和特殊字符都算
1.12 C語言詞匯隐锭?忘了,完全沒概念了计贰,再看看吧钦睡。
分類:標(biāo)識符、關(guān)鍵字蹦玫、運(yùn)算符赎婚、分隔符刘绣、常量、注釋等
(1)標(biāo)識符:變量名挣输、函數(shù)名纬凤、標(biāo)號,庫函數(shù)名由系統(tǒng)定義撩嚼。只能是字母停士、數(shù)字、下劃線組合且第一個字符必須是字母或者下劃線完丽。
Tips:大小有別恋技,長度最好不超8,“顧名思義”
(2)關(guān)鍵字逻族,就是被C語言自己預(yù)留了一些有特殊意義的字符串蜻底,類型(int)、語句(if else)聘鳞、預(yù)處理命令字(include)
(3)運(yùn)算符由一個或者多個字符組成薄辅,就沒有啥說的了
(4)分隔符,逗號和空格兩種抠璃。Inta與int a的不同站楚,會寫就行了,看著不舒服的地方就給個空格搏嗡,又不多收錢窿春。
(5)常量,數(shù)字常量采盒、字符常量旧乞、字符串常量、符號常量纽甘、轉(zhuǎn)義字符等
(6)注釋符良蛮,/*??*/
1.13 書上是TurboC2.0的,有些學(xué)校也推薦學(xué)生安裝VC++6.0啥的悍赢,不過可能是初戀情懷吧一直喜歡Codeblocks(開源啊决瞳,免費(fèi)啊,360商店就能下載啊左权,具體安裝使用間另外一篇文章吧皮胡,這個寫這么多快寫不動了。)