版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
從研究生二年紀(jì)開(kāi)始學(xué)習(xí)計(jì)算機(jī)也差不多兩年了,一路走來(lái),有很多的收獲,也有不少的遺憾,現(xiàn)在正好有一段閑暇,就想對(duì)走過(guò)的路留下一些足跡,回憶。每個(gè)人都有自己不同的人生,說(shuō)到這里,就是程序人生了,歌德在《浮士德》中說(shuō)過(guò):“如果不曾在悲哀中咀嚼過(guò)面包,不曾在哭泣中等待過(guò)明天,這樣的人就不知道你一天的力量?!彼晕蚁胗浵漏`些帶給我悲哀,帶給我哭泣的程序人生。其實(shí)學(xué)習(xí)計(jì)算機(jī)的基礎(chǔ)課程是非常重要的,離散數(shù)學(xué),編譯原理,操作系統(tǒng),形式語(yǔ)言……,如果你認(rèn)真走過(guò)了這些路,在以后的日子你會(huì)發(fā)現(xiàn)你的路會(huì)越走越寬,以前的努力和汗水會(huì)不斷的給你靈感,給你支持,給你前進(jìn)的武器和勇氣。你會(huì)發(fā)現(xiàn)以后取得的很多成就,不過(guò)是朝花タ拾而已!對(duì)于程序語(yǔ)言我喜歡的是C++,它能帶給你別的語(yǔ)言無(wú)法給予你的無(wú)上的智力快感,當(dāng)然也會(huì)給你ー門(mén)語(yǔ)言所能給你的魔鬼般的折磨。其實(shí)Java,C#,Python語(yǔ)言也非常的不錯(cuò),我也極為喜歡。它們都是非常成功的語(yǔ)言,我從來(lái)就不愿意做某ー種語(yǔ)言的盲目信仰者,每種語(yǔ)言都有它成功的地方,失敗的地方,都有它適合的地方,不如意的地方。所以每一次看到評(píng)價(jià)語(yǔ)言的文章,我看看,但從來(lái)不會(huì)發(fā)言。
C++的前世是C,而且C所留下的神秘以及精簡(jiǎn)在C++中是青出于藍(lán)而勝于藍(lán)!c所帶給人的困惑以及靈活太多,即使一個(gè)有幾年經(jīng)驗(yàn)的高段C程序員仍然有可能在C語(yǔ)言的小水溝里翻船。不過(guò)其實(shí)C語(yǔ)言真的不難,下面我想指出C語(yǔ)言中最神秘而又詭諂多變的四個(gè)地方,它們也繼續(xù)在C++語(yǔ)言中變幻莫測(cè)。指針,數(shù)組,類(lèi)型的識(shí)別,參數(shù)可變的函數(shù)。一,指針。它的本質(zhì)是地址的類(lèi)型。在許多語(yǔ)言中根本就沒(méi)有這個(gè)概念。但是它卻正是C靈活,高效,在面向過(guò)程的時(shí)代所向披靡的原因所在。因?yàn)镃的內(nèi)存模型基本上對(duì)應(yīng)了現(xiàn)在vonNeumann(馮?諾伊曼)計(jì)算機(jī)的機(jī)器模型,很好的達(dá)到了對(duì)機(jī)器的映射。不過(guò)有些人似乎永遠(yuǎn)也不能理解指針【注1】。注1:JoelSpolsky就是這樣認(rèn)為的,他認(rèn)為對(duì)指針的理解是一種aptitude,不是通過(guò)訓(xùn)練就可以達(dá)到的.joelonsoftware./pr.../fog0000000073.html指針可以指向值、數(shù)組、函數(shù),當(dāng)然它也可以作為值使用??聪旅娴膸讉€(gè)例子:
int*p;//p是ー個(gè)指針,指向ー個(gè)整數(shù)
int**p;〃p是ー個(gè)指針,它指向第二個(gè)指針,然后
指向一個(gè)整數(shù)int(*pa)[3];〃pa是ー個(gè)指針,指向ー個(gè)擁有3個(gè)
整數(shù)的數(shù)組int(*pf)();〃pf是ー個(gè)指向函數(shù)的指針,這個(gè)函數(shù)
返回一個(gè)整數(shù)后面第四節(jié)我會(huì)詳細(xì)講解標(biāo)識(shí)符(identifier)類(lèi)型
的識(shí)別。.指針本身的類(lèi)型是什么?先看下面的例子:inta;〃a的類(lèi)型是什么?對(duì),把a(bǔ)去掉就可以了。因此上面的4個(gè)聲明語(yǔ)句中
的指針本身的類(lèi)型為:int*int**int(*)[3]int(*)()它們都是復(fù)合類(lèi)型,也就是類(lèi)型與類(lèi)型結(jié)合而成的類(lèi)型。意義分別如下:pointtoint(指向ー個(gè)整數(shù)的指針)pointertopointertoint(指向ー個(gè)指向整數(shù)的指針的指針)pointertoarrayof3ints(指向ー個(gè)擁有三個(gè)整數(shù)的數(shù)組的指針)pointertofunctionofparameterisvoidandreturnvalueisint(指向ー個(gè)函數(shù)的指針,這個(gè)函數(shù)參數(shù)為空,返回值為整數(shù)).指針?biāo)肝锏念?lèi)型是什么?很簡(jiǎn)單,指針本身的類(lèi)型去掉“*”號(hào)就可以了,分別如下:intint*int0[3]int()03和4有點(diǎn)怪,不是嗎?請(qǐng)擦亮你的眼睛,在那個(gè)用來(lái)把“*”號(hào)包住的“()”是多余的,所以:int()[3]就是int[3](ー個(gè)擁有三個(gè)整數(shù)的數(shù)組)int()0就是int()(ー個(gè)函數(shù),參數(shù)為空,返回值為整數(shù))【注2】注2:一個(gè)小小的提醒,第二個(gè)“()”是ー個(gè)運(yùn)算符,名字叫函數(shù)調(diào)用運(yùn)算符(functioncalloperator)o.指針的算術(shù)運(yùn)算。請(qǐng)?jiān)俅斡涀?指針不是一個(gè)簡(jiǎn)單的類(lèi)型,它是ー個(gè)和指針?biāo)肝锏念?lèi)型復(fù)合的類(lèi)型。因此,它的算術(shù)運(yùn)算與之(指針?biāo)肝锏念?lèi)型)密切相關(guān)。inta[8];int*p=a;int*q=p+3;P++;指針的加減并不是指針本身的二進(jìn)制表示加減,要記住,指針是ー個(gè)元素的地址,它每加一次,就指向下ー個(gè)元素。所以:int*q=p+3;〃q指向從p開(kāi)始的第三個(gè)整數(shù)。P++;〃P指向下ー個(gè)整數(shù)。double*pd;……〃某些計(jì)算之后double*pother=pd-2;"pother指向從pd倒數(shù)第二個(gè)double數(shù)。.指針本身的大小。在ー個(gè)現(xiàn)代典型的32位機(jī)器上【注3】,機(jī)器的內(nèi)存模型大概是這樣的,想象一下,內(nèi)存空間就像ー個(gè)連續(xù)的房間群。每ー個(gè)房間的大小是ー個(gè)字節(jié)(一般是二進(jìn)制8位)。有些東西大小是ー個(gè)字節(jié)(比如char),ー個(gè)房間就把它給安置了;但有些東西大小是幾個(gè)字節(jié)(比如double就是8個(gè)字節(jié),int就是4個(gè)字節(jié),我說(shuō)的是典型的32位),所以它就需要幾個(gè)房間才能安置。注3:什么叫32位?就是機(jī)器CPU一次處理的數(shù)據(jù)寬度是32位,機(jī)器的寄存器容量是32位,機(jī)器的數(shù)據(jù),內(nèi)存地址總線(xiàn)是32位。當(dāng)然還有一些細(xì)節(jié),但大致就是這樣。16位,64位,128位可以以此類(lèi)推。這些房間都應(yīng)該有編號(hào)(也就是地址),32位的機(jī)器內(nèi)存地址空間當(dāng)然也是32位,所以房間的每ー個(gè)編號(hào)都用32位的二進(jìn)制數(shù)來(lái)編碼【注4】。請(qǐng)記住指針也可以作為值使用,作為值的時(shí)候,它也必須被安置在房間中(存儲(chǔ)在內(nèi)存中),那么指向ー個(gè)值的指針需要一個(gè)地址大小來(lái)存儲(chǔ),即32位,4個(gè)字節(jié),4個(gè)房間來(lái)存儲(chǔ)。注4:在我們平常用到的32位機(jī)器上,絕少有將32位真實(shí)內(nèi)存地址空間全用完的(232=4G),即使是服務(wù)器也不例外?,F(xiàn)代的操作系統(tǒng)一般會(huì)實(shí)現(xiàn)32位的虛擬地址空間,這樣可以方便運(yùn)用程序的編制。關(guān)于虛擬地址(線(xiàn)性地址)和真實(shí)地址的區(qū)別以及實(shí)現(xiàn),可以參考《Linux源代碼情景分析》的第二章存儲(chǔ)管理,在互聯(lián)網(wǎng)上關(guān)于這個(gè)主題的文章汗牛充棟,你也可以google一下。但請(qǐng)注意,在C++中指向?qū)ο蟪蓡T的指針(pointertomemberdataormemberfunction)的大小不一定是4個(gè)字節(jié)。為此我專(zhuān)門(mén)編制了一些程序,發(fā)現(xiàn)在我的兩個(gè)編譯器(VC7.1.3088和Dev-C++)上,指向?qū)ο蟪蓡T的指針的大小沒(méi)有定值,但都是4的倍數(shù)。不同的編譯器還有不同的值。對(duì)于一般的普通類(lèi)(class),指向?qū)ο蟪蓡T的指針大小一般為4,但在引入多重虛擬繼承以及虛擬函數(shù)的時(shí)候,指向?qū)ο蟪蓡T的指針會(huì)增大,不論是指向成員數(shù)據(jù),還是成員函數(shù)。【注5】。注5:在AndreiAlexandrescu的《ModernC++Design))的5.13節(jié)Pagel24中提到,成員函數(shù)指針實(shí)際上是帶標(biāo)記的(tagged)unions,它們可以對(duì)付多重虛擬繼承以及虛擬函數(shù),書(shū)上說(shuō)成員函數(shù)指針大小是16,但我的實(shí)踐告訴我這個(gè)結(jié)果不對(duì),而且具體編譯器實(shí)現(xiàn)也不同。一直很想看看GCC的源代碼,但由于旁鷲太多,而且心不靜,本身難度也比較高(這個(gè)倒是不害怕A.A),只有留待以后了。還有一點(diǎn),對(duì)ー個(gè)類(lèi)的staticmember來(lái)說(shuō),指向它的指針只是普通的函數(shù)指針,不是pointertoclassmember,所以它的大小是4。.指針運(yùn)算符&和?它們是ー對(duì)相反的操作,&取得一個(gè)東西的地址(也就是指針),?得到ー個(gè)地址里放的東西。這個(gè)東西可以是值(對(duì)象)、函數(shù)、數(shù)組、類(lèi)成員(classmember)o其實(shí)很簡(jiǎn)單,房間里面居住著一個(gè)人,&操作只能針對(duì)人,取得房間號(hào)碼;?操作只能針對(duì)房間,取得房間里的人。參照指針本身的類(lèi)型以及指針?biāo)肝锏念?lèi)型很好理解。小結(jié):其實(shí)你只要真正理解了!,2,就相當(dāng)于掌握了指針的牛鼻子。后面的就不難了,指針的各種變化和C語(yǔ)言中其它普通類(lèi)型的變化都差不多(比如各種轉(zhuǎn)型)。二.數(shù)組。在C語(yǔ)言中,對(duì)于數(shù)組你只需要理解三件事。.C語(yǔ)言中有且只有一維數(shù)組。所謂的n維數(shù)組只是ー個(gè)稱(chēng)呼,ー種方便的記法,都是使用ー維數(shù)組來(lái)仿真的。C語(yǔ)言中數(shù)組的元素可以是任何類(lèi)型的東西,特別的是數(shù)組作為元素也可以。所以inta[3][4]⑸就應(yīng)該這樣理解:a是ー個(gè)擁有3個(gè)元素的數(shù)組,其中每個(gè)元素是ー個(gè)擁有4個(gè)元素的數(shù)組,進(jìn)ー步其中每個(gè)元素是擁有5個(gè)整數(shù)元素的數(shù)組。是不是很簡(jiǎn)單!數(shù)組a的內(nèi)存模型你應(yīng)該很容易就想出來(lái)了,不是嗎?:).數(shù)組的元素個(gè)數(shù),必須作為整數(shù)常量在編譯階段就求出來(lái)。inti;inta;〃不合法,編譯不會(huì)通過(guò)。也許有人會(huì)奇怪charstr[]="test”;沒(méi)有指定元素個(gè)數(shù)為什么也能通過(guò),因?yàn)榫幾g器可以根據(jù)后面的初始化字符串在編譯階段求出來(lái),不信你試試這個(gè):inta[];編譯器無(wú)法推斷,所以會(huì)判錯(cuò)說(shuō)“arraysizemissingina”之類(lèi)的信息。不過(guò)在最新的C99標(biāo)準(zhǔn)中實(shí)現(xiàn)了變長(zhǎng)數(shù)組【注6】注6:如果你是ー個(gè)好奇心很強(qiáng)烈的人,就像我ー樣,那么可以查看C99標(biāo)準(zhǔn)。.對(duì)于數(shù)組,可以獲得數(shù)組第一個(gè)(即下標(biāo)為0)元素的地址(也就是指針),從數(shù)組名獲得。比如inta[5];int*p=a;這里p就得到了數(shù)組元素a[0]的地址。其余對(duì)于數(shù)組的各種操作,其實(shí)都是對(duì)于指針的相應(yīng)操作。比如a[3]其實(shí)就是?(a+3)的簡(jiǎn)單寫(xiě)法,由于*(a+3)==*(3+a),所以在某些程序的代碼中你會(huì)看到類(lèi)似3[a]的這種奇怪表達(dá)式,現(xiàn)在你知道了,它就是a[3]的別名。還有一種奇怪的表達(dá)式類(lèi)似a[T],現(xiàn)在你也明白了,它就是?(a-l)【注7】。注フ:你肯定是ー個(gè)很負(fù)責(zé)任的人,而且也知道自己到底在干什么。你難道不是嗎?:)所以你一?定也知道,做一件事是要付出成本的,當(dāng)然也應(yīng)該獲得多于成本的回報(bào)。我很喜歡經(jīng)濟(jì)學(xué),經(jīng)濟(jì)學(xué)的一個(gè)基礎(chǔ)就是做什么事情都是要花成本的,即使你什么事情也不做。時(shí)間成本,金錢(qián)成本,機(jī)會(huì)成本,健康成本 可以這樣說(shuō),經(jīng)濟(jì)學(xué)的根本目的就是用最小的成本獲得最大的回報(bào)。所以我們?cè)谧约旱某绦蛑凶詈帽苊膺@種邪惡的寫(xiě)法,不要讓自己一時(shí)的智力過(guò)剩帶來(lái)以后自己和他人長(zhǎng)時(shí)間的痛苦。用韋小寶的一句話(huà)來(lái)說(shuō):“賠本的生意老子是不干的!”但是對(duì)邪惡的了解是非常必要的,這樣當(dāng)我們真正遇到邪惡的時(shí)候,可以免受它對(duì)心靈的困擾!對(duì)于指向同一個(gè)數(shù)組不同元素的指針,它們可以做減法,比如int*p=q+i;p-q的結(jié)果就是這兩個(gè)指針之間的元素個(gè)數(shù)。i可以是負(fù)數(shù)。但是請(qǐng)記住:對(duì)指向不同的數(shù)組元素的指針,這樣的做法是無(wú)用而且邪惡的!對(duì)于所謂的n維數(shù)組,比如inta[2][3];你可以得到數(shù)組第一個(gè)元素的地址a和它的大小。*(a+0)(也即a[〇]或者?a)就是第一個(gè)元素,它又是ー個(gè)數(shù)組int[3],繼續(xù)取得它的第一個(gè)元素,*(*(a+O)+O)(也即a[〇][〇]或者?(*a)),也即第一個(gè)整數(shù)(第一行第一列的第一個(gè)整數(shù))〇如果采用這種表達(dá)式,就非常的笨拙,所以a[0][0]記法上的簡(jiǎn)便就非常的有用了!簡(jiǎn)單明了!對(duì)于數(shù)組,你只能取用在數(shù)組有效范圍內(nèi)的元素和元素地址,不過(guò)最后ー個(gè)元素的下ー個(gè)元素的地址是個(gè)例外。它可以被用來(lái)方便數(shù)組的各種計(jì)算,特別是比較運(yùn)算。但顯然,它所指向的內(nèi)容是不能拿來(lái)使用和改變的!關(guān)于數(shù)組本身大概就這么多,下面簡(jiǎn)要說(shuō)ー下數(shù)組和指針的關(guān)系。它們的關(guān)系非常曖昧,有時(shí)候可以交替使用。比如intmain(intargs,char*argvロ)中,其實(shí)參數(shù)列表中的char*argvU就是char**argv的另ー種寫(xiě)法。因?yàn)樵贑語(yǔ)言中,ー個(gè)數(shù)組是不能作為函數(shù)引數(shù)(argument)【注8】直接傳遞的。因?yàn)槟菢臃浅5膿p失效率,而這點(diǎn)違背了C語(yǔ)言設(shè)計(jì)時(shí)的基本理念——作為ー門(mén)高效的系統(tǒng)設(shè)計(jì)語(yǔ)言。注8:這里我沒(méi)有使用函數(shù)實(shí)參這個(gè)大陸術(shù)語(yǔ),而是運(yùn)用了臺(tái)灣術(shù)語(yǔ),它們都是argument這個(gè)英文術(shù)語(yǔ)的翻譯,但在很多地方中文的實(shí)參用的并不恰當(dāng),非常的勉強(qiáng),而引數(shù)表示被引用的數(shù),很形象,也很好理解。很快你就可以像我ー樣適應(yīng)引數(shù)而不是實(shí)參。dereferance?也就是?運(yùn)算符操作。我也用的是提領(lǐng),而不是解引用。我認(rèn)為你一定智勇雙全:既有寬容的智慧,也有面對(duì)新事物的勇氣!你不愿意承認(rèn)嗎?:)所以在函數(shù)參數(shù)列表(parameter1ist)中的數(shù)組形式的參數(shù)聲明,只是為了方便程序員的閱讀!比如上面的char*argvロ就可以很容易的想到是對(duì)ー個(gè)char?字符串?dāng)?shù)組進(jìn)行操作,其實(shí)質(zhì)是傳遞的char?字符串?dāng)?shù)組的首元素的地址(指針)。其它的元素當(dāng)然可以由這個(gè)指針的加法間接提領(lǐng)(dereferance)【參考注8]得到!從而也就間接得到了整個(gè)數(shù)組。但是數(shù)組和指針還是有區(qū)別的,比如在一個(gè)文件中有下面的定義:charmyname[]="wuaihua”;而在另ー個(gè)文件中有下列聲明:externchar*myname;它們互相是并不認(rèn)識(shí)的,盡管你的本義是這樣希望的。它們對(duì)內(nèi)存空間的使用方式不同【注9】。對(duì)于charmyname[]="wuaihua”如下mynamewuahua\o對(duì)于char*myname;如下表myname\l/wuaihua\0注9:可以參考AndrewKonig的《C陷阱與缺陷》4.5節(jié)。改變的方法就是使它們一致就可以了。charmyname[]="wuaihua”;externcharmyname[];或者char*myname="wuaihua”;//C++中最好換成constchar*myname="wuaihua”。externchar*myname;C之詭満(下)三.類(lèi)型的識(shí)別?;绢?lèi)型的識(shí)別非常簡(jiǎn)單:inta;〃a的類(lèi)型是achar*p;//p的類(lèi)型是char*那么請(qǐng)你看看下面幾個(gè):int*(*a[5])(int,char*);//#1void(*b[10])(void(*)());//#2doube(*)()(*pa)[9];//#3如果你是第一次看到這種類(lèi)型聲明的時(shí)候,我想肯定跟我的感覺(jué)ー樣,就如晴天霹靂,五雷轟頂,頭昏目眩,ー頭張牙舞爪的猙獰怪獸撲面而來(lái)。不要緊(Takeiteasy)!我們慢慢來(lái)收拾這幾個(gè)面目可憎的紙老虎!.C語(yǔ)言中函數(shù)聲明和數(shù)組聲明。函數(shù)聲明一般是這樣intfun(int,double);對(duì)應(yīng)函數(shù)指針(pointertofunction)的聲明是這樣:int(*pf)(int,double)5你必須習(xí)慣??梢赃@樣使用:pf=&fun;〃賦值(assignment)操作(*pf)(5,8.9);〃函數(shù)調(diào)用操作也請(qǐng)注意,C語(yǔ)言本身提供了一種簡(jiǎn)寫(xiě)方式如下:pf=fun;//賦值(assignment)操作pf(5,8.9);/Z函數(shù)調(diào)用操作不過(guò)我本人不是很喜歡這種簡(jiǎn)寫(xiě),它對(duì)初學(xué)者帶來(lái)了比較多的迷惑。數(shù)組聲明一般是這樣inta⑸;對(duì)于數(shù)組指針(pointertoarray)的聲明是這樣:int(*pa)[5];你也必須習(xí)慣??梢赃@樣使用:pa=&a;/Z賦值(assignment)操作inti=(*pa)[2]//將a[2]賦值給i;.有了上面的基礎(chǔ),我們就可以對(duì)付開(kāi)頭的三只紙老虎了!:)這個(gè)時(shí)候你需要復(fù)習(xí)一下各種運(yùn)算符的優(yōu)先順序和結(jié)合順序了,順便找本書(shū)看看就夠了。1:int*(*a[5])(int,char*);首先看到標(biāo)識(shí)符名a,“□”優(yōu)先級(jí)大于“*”,a與“[5]”先結(jié)合。所以a是ー個(gè)數(shù)組,這個(gè)數(shù)組有5個(gè)元素,每ー個(gè)元素都是一個(gè)指針,指針指向“(int,char*)”,對(duì),指向ー個(gè)函數(shù),函數(shù)參數(shù)是“int,char*”,返回值是“int*”。完畢,我們干掉了第一個(gè)紙老虎。:)2:void(*b[10])(void(*)0);b是ー個(gè)數(shù)組,這個(gè)數(shù)組有10個(gè)元素,每ー個(gè)元素都是一個(gè)指針,指針指向ー個(gè)函數(shù),函數(shù)參數(shù)是“void(*)0”【注10],返回值是“void”。完畢!注10:這個(gè)參數(shù)又是ー個(gè)指針,指向一個(gè)函數(shù),函數(shù)參數(shù)為空,返回值是“void”。3.doube(?)0(*pa)[9];pa是ー個(gè)指針,指針指向一個(gè)數(shù)組,這個(gè)數(shù)組有9個(gè)元素,每ー個(gè)元素都是“doube(*)()”[也即ー個(gè)指針,指向ー個(gè)函數(shù),函數(shù)參數(shù)為空,返回值是"double”】。現(xiàn)在是不是覺(jué)得要認(rèn)識(shí)它們是易如反掌,工欲善其事,必先利其器!我們對(duì)這種表達(dá)方式熟悉之后,就可以用“typedef”來(lái)簡(jiǎn)化這種類(lèi)型聲明。1:int*(*a[5])(int,char*);typedefint*(*PF)(int,char*);〃PF是ー個(gè)類(lèi)型別名【注11LPFa[5];〃跟int*(*a[5])(int,char*);的效果ー樣!注11:很多初學(xué)者只知道typedefchar*pchar;但是對(duì)于typedef的其它用法不太了解。StephenBlaha對(duì)typedef用法做過(guò)ー個(gè)總結(jié):“建立一個(gè)類(lèi)型別名的方法很簡(jiǎn)單,在傳統(tǒng)的變量聲明表達(dá)式里用類(lèi)型名替代變量名,然后把關(guān)鍵字typedef加在該語(yǔ)句的開(kāi)頭”??梢詤⒖础冻绦騿T》雜志2001.3期《C++高手技巧20招》。2:void(*b[10])(void(*)());typedefvoid(*pfv)();typedefvoid(*pf_taking_pfv)(pfv);pf-taking-pfvb[10];〃跟void(*b[10])(void(*)0);的效果ー樣!3.doube(?)0(*pa)[9];typedefdouble(*PF)();typedefPF(*PA)[9];PApa;〃跟doube(*)()Ppa)[9];的效果ー樣!3.const和volatile在類(lèi)型聲明中的位置在這里我只說(shuō)const,volatile是ー樣的【注12]!注12:顧名思義,volatile修飾的量就是很容易變化,不穩(wěn)定的量,它可能被其它線(xiàn)程,操作系統(tǒng),硬件等等在未知的時(shí)間改變,所以它被存儲(chǔ)在內(nèi)存中,每次取用它的時(shí)候都只能在內(nèi)存中去讀取,它不能被編譯器優(yōu)化放在內(nèi)部寄存器中。類(lèi)型聲明中const用來(lái)修飾ー個(gè)常量,我們一般這樣使用:const在前面constint;//intAconstconstchar*;//charconstchar*const;//*(指針)是constconstchar*const;〃char和?都是const對(duì)初學(xué)者,constchar*;和char*const;是容易混淆的。這需要時(shí)間的歷練讓你習(xí)慣它。上面的聲明有一個(gè)對(duì)等的寫(xiě)法:const在后面intconst;〃int是constcharconst*;//char是constchar*const;//*(指針)是constcharconst*const;〃char和?都是const第一次你可能不會(huì)習(xí)慣,但新事物如果是好的,我們?yōu)槭裁匆芙^它呢?:)const在后面有兩個(gè)好處:A.const所修飾的類(lèi)型是正好在它前面的那一個(gè)。如果這個(gè)好處還不能讓你動(dòng)心的話(huà),那請(qǐng)看下ー個(gè)!B,我們很多時(shí)候會(huì)用到typedef的類(lèi)型別名定義。比如typedefchar*pchar,如果用const來(lái)修飾的話(huà),當(dāng)const在前面的時(shí)候,就是constpchar,你會(huì)以為它就是constchar*,但是你錯(cuò)了,它的真實(shí)含義是char*const。是不是讓你大吃ー驚!但如果你采用const在后面的寫(xiě)法,意義就怎么也不會(huì)變,不信你試試!不過(guò),在真實(shí)項(xiàng)目中的命名一致性更重要。你應(yīng)該在兩種情況下都能適應(yīng),并能自如的轉(zhuǎn)換,公司習(xí)慣,商業(yè)利潤(rùn)不論在什么時(shí)候都應(yīng)該優(yōu)先考慮!不過(guò)在開(kāi)始ー個(gè)新項(xiàng)目的時(shí)候,你可以考慮優(yōu)先使用const在后面的習(xí)慣用法。四.參數(shù)可變的函數(shù)C語(yǔ)言中有一種很奇怪的參數(shù)“…”,它主要用在引數(shù)(argument)個(gè)數(shù)不定的函數(shù)中,最常見(jiàn)的就是printf函數(shù)。printf(aEnjoyyourselfeveryday!Xn");printf(uThevalueis%d!\n”,value);你想過(guò)它是怎么實(shí)現(xiàn)的嗎?printf為什么叫printf?不管是看什么,我總是ー個(gè)喜歡刨根問(wèn)底的人,對(duì)事物的源有一種特殊的癖好,一段典故,ー個(gè)成語(yǔ),一句行話(huà),我最喜歡的就是找到它的來(lái)歷,和當(dāng)時(shí)的意境,一個(gè)外文翻譯過(guò)來(lái)的術(shù)語(yǔ),最低要求我會(huì)盡力去找到它原本的外文術(shù)語(yǔ)。特別是ー個(gè)字的命名來(lái)歷,我一向是非常在意的,中國(guó)有句古話(huà):“名不正,則言不順。"printf中的f就是format的意思,即按格式打印【注13】。注13:其實(shí)還有很多函數(shù),很多變量,很多命名在各種語(yǔ)言中都是非常講究的,你如果細(xì)心觀察追溯,一定有很多樂(lè)趣和滿(mǎn)足,比如哈希表為什么叫hashtable而不叫hashlist?在C++的SGISTL實(shí)現(xiàn)中有一個(gè)專(zhuān)門(mén)用于遞增的函數(shù)iota(不是itoa),為什么叫這個(gè)奇怪的名字,你想過(guò)嗎?看文章我不喜歡意猶未盡,己所不欲,勿施于人,所以我把這兩個(gè)答案告訴你:table與list做為表講的區(qū)別:table:itemlIkadkglasgaldfglIjkdsfhitem2|kjdszhahlka|xcvzlist:************That'sthedifference!如果你還是不明白,可以去看一下hash是如何實(shí)現(xiàn)的!ThenameiotaistakenfromtheprogramminglanguageAPL.而APL語(yǔ)言主要是做數(shù)學(xué)計(jì)算的,在數(shù)學(xué)中有很多公式會(huì)借用希臘字母,希臘字母表中有這樣ー個(gè)字母,大寫(xiě)為I,小寫(xiě)為I,它的英文拼寫(xiě)正好是iota,這個(gè)字母在e(theta)和k(kappa)之間!你可以./wiki/APL_programming_language下面有一段是這樣的:APLisrenownedforusingasetofnon-ASCIIsymbolsthatareanextensionoftraditionalarithmeticandalgebraicnotation.Thesecrypticsymbols,somehavejoked,makeitpossibletoconstructanentireairtrafficcontrolsystemintwo1inesofcode.Becauseofitscondensednatureandnon-standardcharacters,APLhassometimesbeentermeda"write-onlylanguage",andreadinganAPLprogramcanfeel1ikedecodinganalientongue.Becauseoftheunusualcharacter-set,manyprogrammersusedspecialAPLkeyboardsintheproductionofAPLcode.NowadaystherearevariouswaystowriteAPLcodeusingonlyASCIIcharacters.在C++中有函數(shù)重載(overload)可以用來(lái)區(qū)別不同函數(shù)參數(shù)的調(diào)用,但它還是不能表示任意數(shù)量的函數(shù)參數(shù)。在標(biāo)準(zhǔn)C語(yǔ)言中定義了一個(gè)頭文件專(zhuān)門(mén)用來(lái)對(duì)付可變參數(shù)列表,它包含了一組宏,和一個(gè)va_list的typedef聲明。ー個(gè)典型實(shí)現(xiàn)如下【注14]:typedefchar*va_list;#defineva.start(list)list=(char*)&va_alist#defineva.end(list)#defineva.arg(list,mode)((mode*)(list+=sizeof(mode)))[-1]注14:你可以查看C99標(biāo)準(zhǔn)7.15節(jié)獲得詳細(xì)而權(quán)威的說(shuō)明。也可以參考AndrewKonig的《C陷阱與缺陷》的附錄A。ANSIC還提供了vprintf函數(shù),它和對(duì)應(yīng)的printf函數(shù)行為方式上完全相同,只不過(guò)用va_list替換了格式字符串后的參數(shù)序列。至于它是如何實(shí)現(xiàn)的,你在認(rèn)真讀完《TheCProgrammingLanguage^后,我相信你一定可以doityourself!使用這些工具,我們就可以實(shí)現(xiàn)自己的可變參數(shù)函數(shù),比如實(shí)現(xiàn)ー個(gè)系統(tǒng)化的錯(cuò)誤處理函數(shù)error,它和printf函數(shù)的使用差不多。只不過(guò)將stream重新定向到stderr,在這里我借鑒了<(C陷阱與缺陷》的附錄A的例子.實(shí)現(xiàn)如下:#include#includevoiderror(char*format,...)va_listap;va-start(ap,format);fprintf(stderr,“error:");vfprintf(stderr,format,ap);va-end(ap);fprintf(stderr,“\n”);exit(1);}你還可以自己實(shí)現(xiàn)printf:#includeintprintf(char*format,...)(va_listap;va-start(ap,format);intn=vprintf(format,ap);va-end(ap);returnn;)我還專(zhuān)門(mén)找到了VC7.1的頭文件看了一下,發(fā)現(xiàn)各個(gè)宏的具體實(shí)現(xiàn)還是有區(qū)別的,跟很多預(yù)處理(preprocessor)相關(guān)。其中va_list就不一定是char?的別名。typedefstruct{char*aO;/*pointertofirsthomedintegerargument*/intoffset;/*byteoffsetofnextparameter*/}va-list;其它的定義類(lèi)似。經(jīng)常在Windows進(jìn)行系統(tǒng)編程的人一定知道函數(shù)調(diào)用有好幾種不同的形式,比如ー一stdcall,--pascal,__cdeclo在Windows下-stdcal1,--pascal是ー樣的,所以我只說(shuō)ー下--stdcall和--cdecl的區(qū)別。-stdcall表示被調(diào)用端自身負(fù)責(zé)函數(shù)引數(shù)的壓棧和出棧。函數(shù)參數(shù)個(gè)數(shù)一定的函數(shù)都是這種調(diào)用形式。例如:intfun(charc,doubled),我們?cè)趍ain函數(shù)中使用它,這個(gè)函數(shù)就只管本身函數(shù)體的運(yùn)行,參數(shù)怎么來(lái)的,怎么去的,它一概不管。自然有main負(fù)責(zé)。不過(guò),不同的編譯器的實(shí)現(xiàn)可能將參數(shù)從右向左壓棧,也可能從左向右壓棧,這個(gè)順序我們是不能加于利用的【注15】。注15:你可以在HerbSutter的《MoreExceptionalC++?中的條款20:AnUnmanagedPointerProblem,Part1:ParameterEvaluation找到相關(guān)的細(xì)節(jié)論述。_cdecl表示調(diào)用端負(fù)責(zé)被調(diào)用端引數(shù)的壓棧和出棧。參數(shù)可變的函數(shù)采用的是這種調(diào)用形式。為什么這種函數(shù)要采用不同于前面的調(diào)用形式呢?那是因?yàn)椹`stdcall調(diào)用形式對(duì)它沒(méi)有作用,被調(diào)用端根本就無(wú)法知道調(diào)用端的引數(shù)個(gè)數(shù),它怎么可能正確工作?所以這種調(diào)用方式是必須的,不過(guò)由于參數(shù)參數(shù)可變的函數(shù)本身不多,所以用的地方比較少。對(duì)于這兩種方式,你可以編制ー些簡(jiǎn)單的程序,然后反匯編,在匯編代碼下面你就可以看到實(shí)際的區(qū)別,很好理解的!重載函數(shù)有很多匹配(match)規(guī)則調(diào)用。參數(shù)為“…”的函數(shù)是匹配最低的,這ー點(diǎn)在AndreiAlexandrescu的驚才絕艷之作《ModernC++Design))中就有用到,參看35,2.7“編譯期間偵測(cè)可轉(zhuǎn)換性和繼承性”。后記:C語(yǔ)言的細(xì)節(jié)肯定不會(huì)只有這么多,但是這幾個(gè)出現(xiàn)的比較頻繁,而且在C語(yǔ)言中也是很重要的幾個(gè)語(yǔ)言特征。如果把這幾個(gè)細(xì)節(jié)徹底弄清楚了,C語(yǔ)言本身的神秘就不會(huì)太多了。C語(yǔ)言本身就像一把異常鋒利的剪刀,你可以用它做出非常精致優(yōu)雅的藝術(shù)品,也可以剪出ー些亂七八糟的廢紙片。能夠?qū)⒁患淦饔玫匠錾袢牖鞘切枰獣r(shí)間的,需要多長(zhǎng)時(shí)間?不多,請(qǐng)你拿出ー萬(wàn)個(gè)小時(shí)來(lái),英國(guó)Exter大學(xué)心理學(xué)教授麥克?侯威專(zhuān)門(mén)研究神童和天才,他的結(jié)論很有意思:“一般人以為天才是自然而生、流暢而不受阻的閃亮オ華,其實(shí),天才也必須耗費(fèi)至少十年光陰來(lái)學(xué)習(xí)他們的特殊技能,絕無(wú)例外。要成為專(zhuān)家,需要擁有頑固的個(gè)性和堅(jiān)持的能力……每一行的專(zhuān)業(yè)人士,都投注大量心血,培養(yǎng)自己的專(zhuān)業(yè)才能。”1注16]注16:臺(tái)灣女作家、電視節(jié)目主持人吳淡如《拿出ー萬(wàn)個(gè)小時(shí)來(lái)》?!蹲x者》2003.1期?!安挥锰?只要持續(xù)下去。想擁有一輩子的專(zhuān)長(zhǎng)或興趣,就像ー個(gè)人跑馬拉松賽ー樣,最重要的是跑完,而不是前頭跑得有多快?!蓖扑]兩本書(shū):K&R的《TheCProgramminglanguage》,Second
Edition.AndrewKonig的《C陷阱與缺陷》。本文從中引用了好幾個(gè)例子,一本高段程序員的經(jīng)驗(yàn)之談。但是對(duì)純粹的初學(xué)者不太合適,如果你有一點(diǎn)程序設(shè)計(jì)的基礎(chǔ)知識(shí),花ー個(gè)月的時(shí)間好好看看這兩本書(shū),C語(yǔ)言本身就不用再花更多的精力了素材?!锩?電影明星,體育明星,歌F,成功的人,dult&Chi1.兩類(lèi)重點(diǎn)話(huà)題:“熟人”&“名人”★熟悉的人一可以用來(lái)準(zhǔn)備描述家庭成員,朋友,鄰居,幫助過(guò)你的人,老人,孩子等;片你羨慕的人,可以和電影,書(shū),音樂(lè)結(jié)合。2.描述順序:(1)身份(2)外貌,年齡(い枇蚊真題回顧,Describeoneofyourbestfriends.(2009.3.7,2009.3.14),Describeafamilymemberyouadmire.(2009.3.7,2009.4.18),Describeapersonwhoisgoodatcooking.(2009.3.14,2009.4.18,2009.6.20),Describeoneofyourfavoriteteachers.,Describeasuccessful/happyperson.,Describeaneighborofyours.,Describeanadventurouspersonyouknow.Describeacelebrity/famouspersonyou1ike.=sports/moviestar=apersonwhohasgreatinfluenceonyou=successful/happyperson=apersonyouadmire=apersonyouwanttovisit=yourfavoritebook=yourfavoritemovie=characterfromabook/TVSample1ThoughI'mnotverykeenonsports,IdohaveasportsstarwhoIadmirealot.ThenameofthemaniscalledYaoMing.YaoMingisprobablythemostrecognizablesportssuperstarsintheworld.HeplaysbasketballfortheChinanationalteamandfortheHoustonRocketsinAmerica.HeiscurrentlythetallestplayerintheNBA,measuring2.29meters.Yaostartedplayingbasketballwhenhewasnine.In2002,hebecamethefirstinternationalplayerevertobeselectedasthenumberonepickofrookiesbyNBA.HeisahugesuccessinAmerica.HehasplayedintheNBAAl1-StarGameinallofhisseasonswithHouston.YaoMingisloyaltohisfamilyaswellashiscountry.Asweallknow,YaomarriedtoYeLiin2008,aformerplayerforChina'snationalteam.Althoughheisoneofthemostpopularsportsstarintheworld,youcouldhardlyheartherumorsaboutYao.Besides,hecouldbeetheAmericancitizenquiteeasily,butherejectedthatandhetoldmediaatapressconferencethathe'sgoingtobebackChinaverysoon,andifit'spossible,he'dliketobethecoachoftheCBA.Wecanstillrememberthatin2008,hecarriedtheChineseflagduringtheopeningceremonyoftheOlympics,whichhesaidwasa“l(fā)ongdreametrue".Inaddition,Yaoisagenerousyoungman.Ashealsodoesagreatdealforcharity.Afterthe2008Chinaearthquake,hedonated$2mi11iondollarsandcreatedafoundationtoraisesfundstohelprebuildschoolsindisasterareaswhichmovedmi11ionsifChinesepeople.AnothersuccessofYaoishisYaorestaurant&barinHouston.Fromthat,youcouldseehowintelligentheis.Onethingworthmentioningisthatheisverypatientwithhisfansandjournalistswhoingintotherestaurantandaskingforhissignatureortakingphotoswithhim.YaohasbeenagreatprideofChinese.Beingsuchacapableyoungmanful1ofdrive,YaoMingdefinitelyismyhero.Sample2Who?-JaneAustenID-novelistWhat?-book“P&P^-love-adaptedfilm&dramaWhen?-littlePersonality-ironic,humorousInfluence-me&others,like/admire/first,Britain,worldWell,therearemanyfamouspeoplearound,invariousfields.ButthefirstonepoppingintomymindisJaneAusten,anotableEnglishnovelist.Itis"PrideandPrejudice”,herbestknownworkthatbroughthernametome.IhappenedtowatchthefilmwhenIwasquitealittlegirlandwasinstantlyattachedtoit.Forme,itwaslikeamagicworldofadifferentlanguageandculture.GreatlytouchedbytheromanticlovestoryofMissElizabethandMr.Darcy,Itriedtoreadthebook,startingwiththeChineseversionandthentheEnglishone.EverytimeIamreadinghercleverwords,Iamalwaysstruckbyherironic,humorouswritingstyleandcanneverbetiredofthem.SurelyIamnottheonlyonethatlikeher.Therearecountlessadmirersofheraroundtheworld.Thoughshe1ivescenturiesago,hergreatinfluenceremainstillnowandwi11beyond.Wecantellthatfromtheconstantadaptedfilmsanddramas.Forme,JaneAustenistheveryfirstonewhointroducesmetothebeautyofEnglish.AndsheisnotjustafamousfigureinBritainbutalsobelongstotheworld.Sample3TalkingaboutcelebritiesIadore,alotofnameswouldimmediatelyetomymind.However,ifIdohavetomakeachoice,IguessIwouldhavetogoforWuZun,whoisaBrunei-bornactorenjoyingskyrocketingpopularityalloverAsia.ThemainreasonwhyIamahugefanofWu1iesinthatthe28-year-oldnotonlypossessesdelicatefaceandmasculinebuildbutalsoisversatileindifferentareas.Youknow,Wu,whousedtobeabasketballplayer,isasharp-mindedentrepreneuraswellasafamousactor.WubecameahouseholdnameafterlandingaspotintheTaiwanesepopgroupFahrenheitthreeyearsago.Hehasmadeheadwaysincethen,appearinginnumerousTVsits(=situationedy)inTaiwan.Ontopofthat,hehasdisplayedanaptitudeforbusinessaswell.Heopenedathree-storeygymnamedFitnessZoneinBruneianditturnedouttobeagreatsuccess.Asaresult,heevenwonanawardforthemostpromisingyoungentrepreneurinBrunei.Frombasketballplayer,togymowner,toactorandmodelinTaiwan,Wuhasalwayschasedhisdreams.AndIguessthatisamajorreasonwhyIadmirehimsomuch.Referencewords:更淡定更深沉了膽更大了獨(dú)立面對(duì)事情的應(yīng)變能力無(wú)欲無(wú)求了...現(xiàn)在絕對(duì)的無(wú)欲無(wú)求,沒(méi)有喜歡的吃的,沒(méi)有喜歡的人,沒(méi)有喜歡的各種,感覺(jué)原來(lái)不能接受的也無(wú)所謂了,考試掛了好幾科都不帶著急的胖了會(huì)做飯了寂寞的要抑郁了孤獨(dú)從此滲入我骨髓悶騷改明騷了獨(dú)立地宅了。郁郁寡歡??吹煤荛_(kāi)。無(wú)欲無(wú)求覺(jué)得比以前神叨叨了心變涼了覺(jué)得所有的感情都可有可無(wú)自己能把自己顧好就夠了對(duì)自己的國(guó)家和住了二十年的城市有了新的認(rèn)識(shí)發(fā)現(xiàn)自己其實(shí)好戀家也有賢妻良的潛質(zhì)。。。III發(fā)現(xiàn)很多事情其實(shí)自己一個(gè)人也可以的開(kāi)始覺(jué)得很多事情并不是那么理所當(dāng)然的更加用心的去體會(huì)別人的心了更加寬容和忍耐了變簡(jiǎn)單了變耐心了變努力了。。。也變宅了啦。。。學(xué)會(huì)看人臉色。學(xué)會(huì)低聲下氣。媽的說(shuō)出來(lái)怎么這么心酸淡定的面對(duì)淫亂的世界看淡了,堅(jiān)強(qiáng)了,不斤斤計(jì)較了,會(huì)做飯了,臉皮變厚了。除了自己,神馬都是可有可無(wú)的東西。。知道對(duì)自己最重要的是什么了理解爸爸媽媽了,會(huì)想到關(guān)心他們了胖了==實(shí)在了開(kāi)眼了中文英文一塊兒下降了某刻終于明白了我的中國(guó)心里那句“我的祖先早已把我的一切打上中國(guó)印”越發(fā)關(guān)注中國(guó)明白真朋友的可貴獨(dú)立了自我了更加敢于追求自己想要的東西認(rèn)清真實(shí)的自己。變得豁達(dá)、勇敢并更討人喜歡。更篤定,也更現(xiàn)實(shí)。原來(lái)我是這么的愛(ài)國(guó)。。。變成生活上的好姑娘?,外形上的柔情少女,思想上的女流氓,心理上的變形金剛。感覺(jué):國(guó)外就這么ー個(gè)村子,這么ー個(gè)破地方嘛。直接的形容就是,當(dāng)別人說(shuō):**?出國(guó)啦!?。。∧阏f(shuō):哦。什么都無(wú)所謂了,都是浮云,只有自己才真正值得信賴(lài)和依靠。對(duì)于家的需要越來(lái)越淡,連愛(ài)也可有可無(wú),腦子分兩半:過(guò)考試和工作。還有就是,朋友變得很重要不斷的刷新自己做的各種事情的記錄,結(jié)果就是淡定+淡然.一言以蔽之,就是孤獨(dú)蒸億出來(lái)配上歲月蹉院后的成長(zhǎng)/成熟的代價(jià)獨(dú)立處理事情和團(tuán)隊(duì)合作的能力強(qiáng)了孤獨(dú)膨脹到一定程度之后反而變成了一種真實(shí)的存在感淡然了,感恩獲得沒(méi)脾氣了。淡定了。會(huì)照顧自己了。更希望能學(xué)著好好照顧別人。不愛(ài)說(shuō)話(huà)了看淡了,愛(ài)情,什么的堅(jiān)強(qiáng)了因?yàn)樗械氖聝憾家约阂粋€(gè)人忍說(shuō)了也白搭想家想朋友想家鄉(xiāng)的吃的學(xué)會(huì)了用微波爐烤箱弄出頓不錯(cuò)的飯然后孤零零的ー個(gè)人對(duì)著電腦吃ー點(diǎn)滿(mǎn)足感都沒(méi)有的飯……學(xué)會(huì)了擔(dān)當(dāng)和遠(yuǎn)見(jiàn),學(xué)會(huì)了小心謹(jǐn)慎同時(shí)也寂寞的神經(jīng)了,在路上能忽然和自己說(shuō)起話(huà)來(lái),還是用英語(yǔ)。。.嗯,對(duì)有些事情不發(fā)言了。再不跟別人談?wù)瘟?。無(wú)所畏懼了。勇往直前。。。更能一個(gè)人待了、、。驚異與自己對(duì)無(wú)聊和寂寞的承受カ。。。原來(lái)沒(méi)有什么是無(wú)法忍受的更加深刻滴堅(jiān)信一靠天靠地,最可靠的只有自己??…零食只有甜食和各種高熱量…讓我不吃也不是,吃又充滿(mǎn)罪惡感滴歧視體重ニュ…家具什么的自己會(huì)組裝了沒(méi)事喜歡上網(wǎng)學(xué)學(xué)燒菜了減肥變成我一生的事業(yè)了純純的姑娘變成老爺們了廚藝零基礎(chǔ)到廚藝不能見(jiàn)人是否算進(jìn)步?沒(méi)有assignment的時(shí)候總喜歡和國(guó)內(nèi)的人聊天算不算寂寞?女朋友不斷到找不到女朋友算不算孤獨(dú)?花家人錢(qián)無(wú)限制到自己找臨時(shí)エ開(kāi)始感覺(jué)到家人的辛苦并開(kāi)始計(jì)劃生活費(fèi)算不算孝順?錨銖必較到學(xué)會(huì)容忍和謙讓算不算成長(zhǎng)?無(wú)限變胖了發(fā)現(xiàn)父母那么偉大從不會(huì)做飯變成什么都會(huì)做最后變成沒(méi)時(shí)間做天天微波食品學(xué)會(huì)獨(dú)立學(xué)會(huì)不同的思維方式但看的多了懂的多了,卻對(duì)未來(lái)更迷茫了1懂得一個(gè)人去面對(duì)2理解和接受變的不是一回事3更敏感更孤獨(dú)4家5堅(jiān)持夢(mèng)想廚藝見(jiàn)長(zhǎng)會(huì)自己規(guī)劃口袋里的錢(qián)了報(bào)喜不報(bào)憂(yōu)吧很多事情不會(huì)試著去爭(zhēng)論了對(duì)自己國(guó)家的態(tài)度有時(shí)候真還挺矛盾不過(guò)愛(ài)國(guó)是必須的!視野開(kāi)闊了很多思維也變了心態(tài)更好沉穩(wěn)了許多。懂得感恩。還有就是總念家。胖!!!?。。?了!?。。。。。。。。。?huì)做菜了(以前那不叫做菜)會(huì)走出自己的fortzone了孤獨(dú)...更會(huì)省錢(qián)了不會(huì)跟誰(shuí)爭(zhēng)論臺(tái)灣什么的了...很隨大流地胖了廚藝大漲失戀了,異地的孩子太折翼孤單變堅(jiān)強(qiáng),神馬都要靠自己。成熟了,很多事情都看淡看開(kāi)鳥(niǎo)很大的漂泊感,不知未來(lái)會(huì)在哪里,會(huì)怎樣。更喜歡ー個(gè)人的生活體諒家人知道賺錢(qián)不容易性格開(kāi)朗了朋友多了研究好吃的做給自己和朋友吃有時(shí)間就自己一個(gè)人去電影院看ー場(chǎng)電影走了很久回頭オ發(fā)現(xiàn)已經(jīng)離起點(diǎn)很遠(yuǎn)了《童趣》說(shuō)課稿ー、說(shuō)教材くー)、教材地位及作用《童趣》是人教社義教教材七年級(jí)上冊(cè)第ー單元的ー篇教讀課文,也是七年級(jí)學(xué)生接觸到的第一篇文言文。這個(gè)單元的五篇課文都是抒寫(xiě)作者對(duì)于人生的體驗(yàn)和思考。本文生動(dòng)地描述了作者童年的幾件趣事,表達(dá)作者童年生活的無(wú)限樂(lè)趣。文章充滿(mǎn)奇思妙想,意趣盎然,對(duì)剛步入中學(xué)的稚氣未脫的孩子來(lái)說(shuō),閱讀此文能較好地引起他們的共鳴,獲得對(duì)人生有益的體驗(yàn)和啟示。く二)、三維教學(xué)目標(biāo)新課標(biāo)提出“各個(gè)學(xué)段的閱讀教學(xué)都要重視朗讀”,“語(yǔ)文教學(xué)注重語(yǔ)言的積累”;“閱讀淺易的文言文,能借助工具書(shū)和注釋理解基本內(nèi)容”;“欣賞文學(xué)作品,能有自己的情感體驗(yàn),初步領(lǐng)悟作品的內(nèi)涵,從中獲取對(duì)自然、社會(huì)、人生有益的啟示;要培養(yǎng)學(xué)生健康的審美情趣”。新課標(biāo)主張關(guān)注學(xué)生的學(xué)習(xí)過(guò)程,倡導(dǎo)自主、合作、探究的學(xué)習(xí)方式,加強(qiáng)學(xué)法指導(dǎo),注重提高學(xué)生的語(yǔ)文素養(yǎng),培養(yǎng)學(xué)生的主動(dòng)意識(shí)。依照新課標(biāo)要求和教材特點(diǎn),結(jié)合具體學(xué)情,確定本課教學(xué)目標(biāo)如下:1、知識(shí)和能力目標(biāo)(1)正確、流暢地朗讀課文,達(dá)到熟讀成(2)學(xué)習(xí)積累文言詞匯,疏通文意,培養(yǎng)閱讀文言文的能力;(3)領(lǐng)悟作者用心觀察事物、發(fā)揮聯(lián)想和想象的能力。2、過(guò)程和方法目標(biāo)(1)聯(lián)系生活,激發(fā)學(xué)生學(xué)習(xí)文言文的興趣;(2)培養(yǎng)學(xué)生形成自主、合作、探究的學(xué)習(xí)方式,激發(fā)學(xué)生的主動(dòng)意識(shí)。3、情感、態(tài)度和價(jià)值觀目標(biāo)體驗(yàn)生活,愛(ài)惜生命,感悟生活樂(lè)趣。く三)、教學(xué)重難點(diǎn):重點(diǎn):掌握誦讀方法,理解并積累文言字詞。難點(diǎn):感悟物外之趣。二、說(shuō)教法學(xué)法教法1:創(chuàng)設(shè)情景法。新課程重視把語(yǔ)文與生活聯(lián)系起來(lái),強(qiáng)調(diào)創(chuàng)設(shè)情境、貼近學(xué)生生活實(shí)際去調(diào)動(dòng)學(xué)生的生活體驗(yàn)。從學(xué)生熟悉的游戲自然地導(dǎo)入課題,拉近學(xué)習(xí)與生活的距離,使學(xué)生在良好的氛圍中激發(fā)出學(xué)習(xí)的興趣和思維的火花,也使課堂變得生動(dòng)活潑。教法2:導(dǎo)讀法。教師是學(xué)生學(xué)習(xí)的組織者、主導(dǎo)者。引導(dǎo)學(xué)生感知、理解、品味文章內(nèi)容,體味作者的情趣,體現(xiàn)教師在教學(xué)的主導(dǎo)作用。學(xué)法1:誦讀法?!白x書(shū)百遍,其義自見(jiàn)”,教學(xué)本文時(shí)引導(dǎo)學(xué)生在反復(fù)默讀,朗讀的基礎(chǔ)上,疏通文意,感悟語(yǔ)文內(nèi)容。根據(jù)對(duì)課文內(nèi)容的理解,進(jìn)ー步矯正自己在朗讀上如語(yǔ)氣,節(jié)奏,速度和情感等方面存在的問(wèn)題,然后進(jìn)一步朗讀,最后達(dá)到熟讀成誦的目的。學(xué)法2:合作探究法。新課程標(biāo)準(zhǔn)倡導(dǎo)自主、合作、探究的學(xué)習(xí)方式,強(qiáng)調(diào)學(xué)生是學(xué)習(xí)的主體,注重培養(yǎng)學(xué)生自主學(xué)習(xí)的意識(shí)和習(xí)慣。采用小組討論、合作探究不我待的方式,有助于激發(fā)學(xué)生的興趣和創(chuàng)新精神。[教具準(zhǔn)備]:多媒體課件。[課時(shí)安排]:兩課時(shí)。三、說(shuō)教學(xué)過(guò)程(一)、導(dǎo)入新課,了解常識(shí)1、導(dǎo)入新課同學(xué)們,兒童是天真爛漫的。對(duì)世界,他們充滿(mǎn)了好奇和幻想。小時(shí)候,我們都玩過(guò)“過(guò)家家”游戲,幾個(gè)小朋友在一起,有的當(dāng)爸爸,有的當(dāng)媽媽,有的當(dāng)孩子。有句兒歌唱道(教師唱):“小板発啊擺ー排,小朋友們坐上來(lái)啊坐上來(lái)。我當(dāng)司機(jī)把車(chē)開(kāi)啊,我當(dāng)司機(jī)把車(chē)開(kāi)。轟隆隆隆,轟隆隆隆,轟隆隆隆,嗚——?!笨?小板発排起來(lái)就成了火車(chē)了。多有趣!今天我們來(lái)學(xué)習(xí)清代文學(xué)家沈復(fù)的短文《童趣》。文中的趣事,可能會(huì)勾起我們?cè)S多兒時(shí)的回憶,或許還能給我們帶來(lái)意想不到的啟發(fā)。2、幻燈片顯示課題。3、簡(jiǎn)介作品、作者:(學(xué)生交流收集到有關(guān)作者的信息。由此培養(yǎng)學(xué)生收集整理信息的能力)4、文體導(dǎo)學(xué)文言文是古代的書(shū)面語(yǔ),特點(diǎn)是簡(jiǎn)潔、典雅。學(xué)習(xí)文言文是為了繼承民族的文化遺產(chǎn),幫助我們了解歷史,可以豐富我們的語(yǔ)言。學(xué)好文言文關(guān)鍵在于培養(yǎng)語(yǔ)感。ー是要熟讀、背誦,體驗(yàn)文言文的表達(dá)方式和語(yǔ)言習(xí)慣:二是要用心領(lǐng)悟,把“言”和“意”融為一體,見(jiàn)“言”而知“意”;三是不斷積累文言詞匯,掌握文言文的表達(dá)工具。(二)、誦讀感知,疏通文意1、朗讀指導(dǎo),初步感知①、教師范讀課文。并指導(dǎo)和點(diǎn)撥朗讀方法:A、讀準(zhǔn)字音;B、讀清句子和停頓;C、讀出語(yǔ)氣和感情。②、學(xué)生反復(fù)朗讀課文。給加點(diǎn)字的注音(幻燈片顯示)。③、在了解課文內(nèi)容的基礎(chǔ)上,劃分句子的朗讀節(jié)奏(幻燈片顯示)。例:見(jiàn)/藐小之物/必/細(xì)察其紋理,故/時(shí)有/物外之趣。2、討論合作,解釋詞義(幻燈片顯示)。例:⑴又留蚊于素帳中,徐噴以煙。(慢慢(2)捉蝦蟆,冊(cè)數(shù)十,驅(qū)之別院。(用鞭子抽打)⑶見(jiàn)藐小M物必細(xì)察丼紋理。(之,的。其,它的,指“藐小之物”。)3、討論合作,翻譯語(yǔ)句(幻燈片顯示)。例:作青云白鶴觀,果如鶴唳云端,為之怡然稱(chēng)快。譯:比作“青云白鶴”的景觀,果然它們就像白鶴在云端飛鳴,[我]為此高興得[不斷地]叫好。)(以上為第一課時(shí)內(nèi)容。)4、依據(jù)提綱,創(chuàng)新復(fù)述教師對(duì)學(xué)生的復(fù)述給予賞識(shí)和激勵(lì)性評(píng)價(jià)。5、點(diǎn)面結(jié)合,背誦課文(三)、賞讀感悟,合作探究此環(huán)節(jié)意在引導(dǎo)學(xué)生深入閱讀文本,探究文章內(nèi)容和感悟作者思想感情。1、同學(xué)們,這篇課文的主旨是什么?明確:本文的主旨是寫(xiě)作者兒時(shí)的“物外之趣”。2、請(qǐng)概括地說(shuō)出作者記敘了哪幾件“物外之趣”?明確:(1)把“夏蚊成雷”比作“群鶴舞于空中”。(2)把草叢、蟲(chóng)蟻、土礫比作森林、野獸、丘壑。(3)觀“二蟲(chóng)斗草間”,懲治癩蛤蝶。3、這篇課文的結(jié)構(gòu)特點(diǎn)是什么?明確:由總到分。4、你認(rèn)為這種“物外之趣”是怎樣產(chǎn)生的?明確:是借助于豐富的聯(lián)想和想像創(chuàng)造出來(lái)的。(四)、體驗(yàn)反思,拓展延伸你有沒(méi)有過(guò)類(lèi)似的經(jīng)歷?試展示一下自己的創(chuàng)造カ。(鼓勵(lì)同學(xué)們敞開(kāi)述說(shuō),教師應(yīng)注意引導(dǎo)學(xué)生圍繞中心暢談體會(huì),做好評(píng)價(jià)。)2、討論:這篇課文對(duì)你有怎樣的啟發(fā)?提示:聯(lián)想和想像是創(chuàng)新的基礎(chǔ)。我們要培養(yǎng)創(chuàng)新能力,首先要培養(yǎng)自己的聯(lián)想和想像的能カ。我們要保持青少年特有的好奇心和富于幻想的特點(diǎn),勇于實(shí)踐,做ー個(gè)敢想敢做,勇于開(kāi)拓的人。3、你認(rèn)為怎樣做才算是ー個(gè)有情趣的人?提示:熱愛(ài)自然,熱愛(ài)生活;富于聯(lián)想和想像,有一定的審美能力,能發(fā)現(xiàn)美,認(rèn)識(shí)美。4、“我”為小蟲(chóng)打抱不平,為什么只是“驅(qū)之別院”,而不是將癩蛤蟆處死?參考答案:A,珍惜生命。B.處置有度。C,不忍心。(以上4題答案不求統(tǒng)ー,只要言之成理即可。要尊重學(xué)生的獨(dú)特感受,對(duì)有創(chuàng)意的回答,教師要給予鼓勵(lì)。)(五)結(jié)語(yǔ)通過(guò)這ー課的學(xué)習(xí),我們了解了作者童年時(shí)豐富奇特的想象和天真爛漫的情趣,以及身處塵世時(shí)那種超然物外的閑情,認(rèn)識(shí)到了童心的純真,童趣的美妙。同學(xué)們,讓我們?cè)谝院蟮娜松缆飞?永遠(yuǎn)保持ー顆童心,用心去觀察生活、感受生活的樂(lè)趣,用豐富的聯(lián)想和想象去創(chuàng)造美好的生活!(六)、布置作業(yè)(幻燈片顯示)。第一課時(shí)1、背誦課文。2、完成“研討和練習(xí)”第二題。3、寫(xiě)ー個(gè)復(fù)述課文內(nèi)容的提綱。第二課時(shí)以“童年記趣”為內(nèi)容,寫(xiě)ー篇不少于300字的短文。四、說(shuō)板書(shū)設(shè)計(jì)本文作者通過(guò)聯(lián)想和想象的思維方式給蚊子等自然景物賦予新的形象,從而獲得物外之趣。主板書(shū)按這個(gè)思路設(shè)計(jì),更直觀指導(dǎo)學(xué)生整體感悟課文。觀蚊(聯(lián)想)觀蚊(聯(lián)想)鶴舞物外之趣 (分)草蟲(chóng)土礫 (想象) 山林野獸(總)九年級(jí)(上)英語(yǔ)單詞拼寫(xiě)專(zhuān)項(xiàng)訓(xùn)練1/1.Hemadealotof(錯(cuò)誤)in(語(yǔ)法).Theteacherlistenedtothechildrenreading(大聲地).(口語(yǔ))English.Thereareno(區(qū)另リ)betweenEnglishnamesandAmericannames.TheyhopetojoinanEnglishclubtopractice(MEnglish.Doyouknowthe(發(fā)音)oftheword?IcaMt(發(fā)音)someofthewords.Thebabyissoyoungthathecan_(幾乎不)dresshimself.IthinkEnglishgrammarisboring,butWeiMingfeels(不同地).6己ケ乙)thewordsisveryimportantllWearesoethatwejumpandsing(咼興地).Hethinksmwordsisagreatwaytolearnalanguage.Ifsimpoliteto1atthepeopleintrouble.JtheEnglishclubcanimproveyourEnglish.DoyouoftenmakeminEnglish?Many(士兵)diedin"Xsnq〇〇;111,1-sXppsssq;s;jqouoo.I0J。叫[。ム叫 qI'U,sigq;oqi!兇guijuo〇。イ!Is;ugpn;s'\z,Xppjg;sgXujooj9qiutuinSojgqmpsjgqopg;gqx"03,sg?|Busgqijo1oqoipssnjitSoqj,*614gqs,叩!p,s]sg]gjeq〇, ngq§'^\/l3SJ!JS!(聯(lián)學(xué)) gAg^gqi?ハ,Jpmgqi.ItsthatYuMinghaschangedalot..Iamafraidofbalone..Theaccidentcausedhisfather%_(死亡)..Intheendtheymadea(決定)togothere.Tomy(驚奇),hegotgoodgradesthistime.Pleasegupsmoking.Ifsbadforyourhealth.Ifyoudon'tstudy,you'llwyourtimeinschool.Hewantedhismothertopaymoreatohim.Martinhasreally(變化).2.Tshouldbeallowedtochoosetheirownclothes.Sixteen-year-oldsshouldn'tbeatodrive.Theytalkedinsteadofdtheirhomework.I,mafraidofmyheadteacher.He'sverys.Studentsshouldn'tbeallowedtos_upuntil11pm.Ifyoucmoreonyourclothes,you'lllesscareaboutyourstudies.Dourownclothesisinteresting.It'sagoodwaytoallowstudentstostudying.Ican'tc whichpairofjeanstobuy.Everyoneneedstohaveat1eighth(小時(shí))sleep.HeshouldstopwearingthesesillyTheboyalwaysfeel(困倦)inChineseclass.Atlastthey(成功)lastyear.Studentsshouldn'tbe(允許)tosmokeatschool.Englishis(說(shuō))allovertheworld.IntheirschoolFrenchis(教)?ItwouldbeagoodeformebecauseIwanttobeadoctorwhenIamolder.4/49. Whatwouldyoudoifyouhadamilliond?—Iwouldgivethemoneytoc .IfIwyou,I'dtakeasmallpresent.WifIdon'tknowanyone?Iaskedhis(允許)tousehisbike.Thelittlegirlgavehermothera(自信的)smile.ShelearnedEnglishbyh .MissLiianewstudenttoherclassyesterday.Theylistencarefully,theyaregood1.ChengLongisafamousactor.HerChinesekungfuHeknowslotsofthings.HeisHedidn'tagreewithme,sohertodothings.Youmadelotsofmistakes.YoumustcthemTherearemanybooksontheses .I'mtooshytogivesinfrontoftheclass.Heishardlyevertired.HeisTheterriblenoisedidn'tbotheryouinthes.Ican'tthinkofanygood(建設(shè))togiveher,butyoualwayscupwithgoodstopeople's(困難).5/66.MarkTwainisaveryfamous(作家).Thebookdoesn'tbtoyou,it'shers.Hurryup,oryoucan'tctheearlybus.Theoofthebeautifulhouseisasinger.Ihaven'tseenmydogfortwodays,Iamverywaboutit.ThedofGradeNineisMrSun.Our(鄰居)areveryfriendly.Wegetonverywell.Thefoodintherestaurantsnice.Therearesomebig(石頭)inthestreet.Let'smovethemaway.Heisa(不誠(chéng)實(shí)的)student.Weallworryabouthim.There'sa(奇怪的)smellintheroom.Don'tforgettheimportant(約會(huì))thisafternoon.Shedidn'tgotoschoolbofhisillness.Thenicebikemightbeapforhim.Becausehisbirthdayising.0.Hesaidhedthemusicbecauseitwastooloudly.MrQiaoisamanwithakindh.Heisalwaysreadytohelpothers.He1ikesmusicthathasgreat1They'replayingquietandgsongs.Someofthesingersdon'tsingthesongscMrGaoisafamouspHehastakenalotofbeautifulphotographs.LinLinisanhboy,andhenevertell1iestoothers.WillThursdaysyou?Wyoudo,youmustbecareful.89.I'dliketogosomewhere (放松的).Foryournextvacation,whynot(consider)(visit)Paris?Themusic(聽(tīng)起來(lái))1ikebirdssinging.Wouldyou1ikesomething(別的)?Iピsaboutfive(天)work.Bobisno(不再)ayoungman.Youmuststop(抽煙).Hangzhouisoneofthemostbeautiful (城中丿intheworld.Thatoldman(死)fiveweeksago.Fatherlooksvery(擔(dān)憂(yōu)的)today.Ididn/thavebreadforbreakfast,Ihadabowlofnoodles(代替).Hisfather'singback(使得)himfeelveryhappy.TodayIcametoschool(沒(méi)有)breakfast.Iwastoobusyand(錯(cuò)過(guò))thefilm"Titanic".Iwilltellyouwhenhe _ 倒達(dá))myhome.Therearesomany(參觀者)intheWestLake.Youmustkeep(安靜)inclass.He(改變)hisnamewhenhewasintheUSA.It'snotgoodtolaughatothers'(錯(cuò)誤).There's
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年高校博士研究生教師職務(wù)聘任合同范本3篇
- 二零二五年度跨境電子商務(wù)代理銷(xiāo)售合同6篇
- 二零二五年空壓機(jī)行業(yè)市場(chǎng)推廣與銷(xiāo)售合同3篇
- 二零二五年度儲(chǔ)煤場(chǎng)煤炭?jī)?chǔ)備與智能物流服務(wù)合同3篇
- 2024版土地貸款反擔(dān)保合同范本3篇
- 二零二五年度特殊環(huán)境搬遷及環(huán)保措施合同3篇
- 二零二五版跨境擔(dān)保居間交易合同細(xì)則2篇
- 展會(huì)國(guó)際物流合同(2篇)
- 二零二五版代駕服務(wù)租賃合同范本(含車(chē)輛使用限制條款)2篇
- 二零二五版快遞駕駛員職業(yè)發(fā)展規(guī)劃與聘用合同3篇
- 公共政策分析 課件 第8章政策評(píng)估;第9章政策監(jiān)控
- 人教版八年級(jí)上學(xué)期物理期末復(fù)習(xí)(壓軸60題40大考點(diǎn))
- 企業(yè)環(huán)保知識(shí)培訓(xùn)課件
- 2024年度管理評(píng)審報(bào)告
- 暨南大學(xué)《微觀經(jīng)濟(jì)學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 醫(yī)藥銷(xiāo)售合規(guī)培訓(xùn)
- DB51-T 5038-2018 四川省地面工程施工工藝標(biāo)準(zhǔn)
- 三年級(jí)數(shù)學(xué)(上)計(jì)算題專(zhuān)項(xiàng)練習(xí)附答案
- GB/T 12723-2024單位產(chǎn)品能源消耗限額編制通則
- 2024年廣東省深圳市中考英語(yǔ)試題含解析
- GB/T 16288-2024塑料制品的標(biāo)志
評(píng)論
0/150
提交評(píng)論