




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、面試準(zhǔn)備備題(包包括高質(zhì)質(zhì)量c+題)consst ccharr*, chaar cconsst*, chhar*connst的的區(qū)別問問題幾乎乎是C+面試試中每次次都會(huì)有有的題目目。事實(shí)上這這個(gè)概念念誰都有有只是三三種聲明明方式非非常相似似很容易易記混。 Bjarrne在在他的TThe C+ Prrogrrammmingg Laanguuagee里面給給出過一一個(gè)助記記的方法法: 把一個(gè)聲聲明從右右向左讀讀。charr * connst cp; ( * 讀讀成 ppoinnterr too ) cp iis aa coonstt poointter to chaarconsst ccharr
2、* p; p iss a poiinteer tto cconsst ccharr;charr coonstt * p; 同上因?yàn)闉镃+里面沒沒有coonstt*的運(yùn)運(yùn)算符,所所以coonstt只能屬屬于前面面的類型型。 下面這個(gè)個(gè)程序執(zhí)執(zhí)行后會(huì)會(huì)有什么么錯(cuò)誤或或者效果果:#deffinee MAAX 2255int maiin() uunsiigneed ccharr AMAXX,ii; ffor (i=0;ii=MMAX;i+) AAi=i;解答:MAX=2555數(shù)組A的的下標(biāo)范范圍為:0.MAXX-1,這是其其一.其二.當(dāng)當(dāng)i循環(huán)環(huán)到2555時(shí),循環(huán)內(nèi)內(nèi)執(zhí)行:A2555=2555;這句本
3、身身沒有問問題.但是返返回foor (i=00;i=MAAX;ii+)語句時(shí)時(shí),由于unnsiggnedd chhar的的取值范范圍在(0.2555),ii+以以后i又又為0了了.無無限循環(huán)環(huán)下去.注:chhar類類型為一一個(gè)字節(jié)節(jié),取值值范圍是是-1128,1127,unnsiggnedd chhar 0 ,2555編寫用CC語言實(shí)實(shí)現(xiàn)的求求n階階階乘問題題的遞歸歸算法:longg innt ffactt(innt nn)int x;longg innt yy;if(nnhiggh) retturnn -11;mid=(loow+hhighh)/22;if(xx=aamiid) reetur
4、rn mmid;if(xxamidd) retturnn(BSSearrch(a,xx,loow,mmid-1);elsee reeturrn(BBSeaarchh(a,x,mmid+1,hhighh);2、非遞遞歸方法法實(shí)現(xiàn):int BSeearcch(eelemmtyppe aa,keyytyppe kkey,intt n)int loww,hiigh,midd;low=0;hhighh=n-1;whille(llow=hiigh) mmid=(loow+hhighh)/22; iif(aamiid.keyy=kkey) reeturrn mmid; eelsee iff(amidd.kk
5、ey22解:int f(iint n)int i,ss,s11,s22;s1=11;/*s1用用于保存存f(nn-1)的值*/s2=11;/*s2用用于保存存f(nn-2)的值*/s=1;for(i=33;i= - EEPSIINONN) & (x =”或“=”此類形式。如下是錯(cuò)錯(cuò)誤的寫寫法,不不得分。if (x = 00.0)if (x != 00.0)請(qǐng)寫出 chaar *p 與與“零值”比較的的 iff 語句句。(33 分)標(biāo)準(zhǔn)答案案:if (p = NNULLL)if (p != NNULLL)如下寫法法均屬不不良風(fēng)格格,不得得分。if (p = 00)if (p != 00)if (
6、p)if (!)二、以下下為Wiindoows NT 下的332 位位C+程序,請(qǐng)請(qǐng)計(jì)算ssizeeof 的值(110 分分)voidd Fuunc ( ccharr sttr1100)請(qǐng)計(jì)算sizeeof( sttr ) = 4 (22 分)charr sttr = “Heelloo” ;charr *pp = strr ;int n = 100;請(qǐng)計(jì)算sizeeof (sttr ) = 6 (22 分)sizeeof ( pp ) = 44 (22 分)sizeeof ( nn ) = 44 (22 分)voidd *pp = malllocc( 1100 );請(qǐng)計(jì)算sizeeof ( p
7、p ) = 44 (22 分)三、簡(jiǎn)答答題(225 分分)1、頭文文件中的的 iffndeef/ddefiine/enddif 干什么么用?(55 分)答:防止止該頭文文件被重重復(fù)引用用。2、#iinclludee 和和 #iinclludee “fillenaame.h” 有什什么區(qū)別別?(55 分)答:對(duì)于于#inncluude ,編編譯器從從標(biāo)準(zhǔn)庫庫路徑開開始搜索索 fiilennamee.h對(duì)于#iinclludee “fillenaame.h” ,編編譯器從從用戶的的工作路路徑開始始搜索 fillenaame.h3、coonstt 有什什么用途途?(請(qǐng)請(qǐng)至少說說明兩種種)(55 分)
8、答:(11)可以以定義 connst 常量(2)cconsst 可可以修飾飾函數(shù)的的參數(shù)、返回值值,甚至至函數(shù)的的定義體體。被cconsst 修修飾的東東西都受到到強(qiáng)制保保護(hù),可可以預(yù)防防意外的的變動(dòng),能能提高程程序的健健壯性。4、在CC+ 程序中中調(diào)用被被 C 編譯器器編譯后后的函數(shù)數(shù),為什什么要加加 exxterrn “C”? (55 分)答:C+語言言支持函函數(shù)重載載,C 語言不不支持函函數(shù)重載載。函數(shù)數(shù)被C+編譯譯后在庫庫中的名名字與C 語語言的不不同。假假設(shè)某個(gè)個(gè)函數(shù)的的原型為為: vvoidd fooo(iint x, intt y);該函數(shù)被被C 編編譯器編編譯后在在庫中的的名字
9、為為_fooo , 而C+編譯譯器則會(huì)會(huì)產(chǎn)生像像_fooo_innt_iint 之類的的名字。C+提提供了CC 連接接交換指指定符號(hào)號(hào)extternn“C”來解決決名字匹匹配問題題。5、請(qǐng)簡(jiǎn)簡(jiǎn)述以下下兩個(gè)ffor 循環(huán)的的優(yōu)缺點(diǎn)點(diǎn)(5 分)for (i=0; iNN; ii+)if (conndittionn)DoSoometthinng();elseeDoOttherrthiing();if (conndittionn)for (i=0; iNN; ii+)DoSoometthinng();elseefor (i=0; iNN; ii+)DoOttherrthiing();優(yōu)點(diǎn):程程序簡(jiǎn)潔潔
10、缺點(diǎn):多多執(zhí)行了了N-11 次邏邏輯判斷斷,并且且打斷了循循環(huán)“流水線線”作業(yè),使使得編譯譯器不能對(duì)對(duì)循環(huán)進(jìn)進(jìn)行優(yōu)化化處理,降降低了效效率。優(yōu)點(diǎn):循循環(huán)的效效率高缺點(diǎn):程程序不簡(jiǎn)簡(jiǎn)潔四、有關(guān)關(guān)內(nèi)存的的思考題題(每小小題5 分,共共20 分)voidd GeetMeemorry(ccharr *pp)p = (chhar *)mmallloc(1000);voidd Teest(voiid)charr *sstr = NNULLL;GetMMemoory(strr);strccpy(strr, helllo worrld);prinntf(strr);請(qǐng)問運(yùn)行行Tesst 函函數(shù)會(huì)有有什么樣樣的
11、結(jié)果果?答:程序序崩潰。因?yàn)镚eetMeemorry 并并不能傳傳遞動(dòng)態(tài)態(tài)內(nèi)存,Testt 函數(shù)數(shù)中的 strr 一直直都是 NULLL。strccpy(strr, helllo worrld);將將使程序序崩潰。charr *GGetMMemoory(voiid)charr p = hhelllo wworlld;retuurn p;voidd Teest(voiid)charr *sstr = NNULLL;str = GGetMMemoory();prinntf(strr);請(qǐng)問運(yùn)行行Tesst 函函數(shù)會(huì)有有什么樣樣的結(jié)果果?答:可能能是亂碼碼。因?yàn)镚eetMeemorry 返返回的是是
12、指向“棧內(nèi)存存”的指針,該該指針的的地址不不是 NNULLL,但其其原現(xiàn)的內(nèi)容容已經(jīng)被被清除,新新內(nèi)容不不可知。voidd GeetMeemorry2(chaar *p, innt nnum)*p = (ccharr *)malllocc(nuum);voidd Teest(voiid)charr *sstr = NNULLL;GetMMemoory(&sttr, 1000);strccpy(strr, helllo);prinntf(strr);請(qǐng)問運(yùn)行行Tesst 函函數(shù)會(huì)有有什么樣樣的結(jié)果果?答:(1)能能夠輸出出helllo(2)內(nèi)內(nèi)存泄漏漏voidd Teest(voiid)char
13、r *sstr = (chaar *) mmallloc(1000);strccpy(strr, “hhelllo”);freee(sttr);if(sstr != NULLL)strccpy(strr, “wworlld”);prinntf(strr);請(qǐng)問運(yùn)行行Tesst 函函數(shù)會(huì)有有什么樣樣的結(jié)果果?答:篡改改動(dòng)態(tài)內(nèi)內(nèi)存區(qū)的的內(nèi)容,后后果難以以預(yù)料,非常常危險(xiǎn)。因?yàn)閒rree(strr);之之后,sstr 成為野野指針,if(sstr != NULLL)語語句不起起作用。五、編寫寫strrcpyy 函數(shù)數(shù)(100 分)已知sttrcppy 函函數(shù)的原原型是charr *sstrccpy(
14、chaar *strrDesst, connst chaar *strrSrcc);其中sttrDeest 是目的的字符串串,sttrSrrc 是是源字符符串。(1)不不調(diào)用CC+/C 的的字符串串庫函數(shù)數(shù),請(qǐng)編編寫函數(shù)數(shù) sttrcppycharr *sstrccpy(chaar *strrDesst, connst chaar *strrSrcc);asseert(sttrDeest!=NUULL) & (sstrSSrc !=NNULLL); / 2分分charr *aaddrresss = strrDesst; / 2分whille( (*sstrDDestt+ = * sttrSrr
15、c+) != 0 ) / 2分NULLL ;retuurn adddresss ; / 2分分(2)sstrccpy 能把sstrSSrc 的內(nèi)容容復(fù)制到到strrDesst,為為什么還還要chhar * 類類型的返返回值?答:為了了實(shí)現(xiàn)鏈鏈?zhǔn)奖磉_(dá)達(dá)式。 / 2 分分例如 iint lenngthh = strrlenn( sstrccpy( sttrDeest, “helllo worrld”) );六、編寫寫類Sttrinng 的的構(gòu)造函函數(shù)、析析構(gòu)函數(shù)數(shù)和賦值值函數(shù)(225 分分)已知類SStriing 的原型型為:classs SStriingpubllic:Striing(conns
16、t chaar *strr = NULLL); / 普通通構(gòu)造函函數(shù)Striing(connst Strringg &ootheer); / 拷貝貝構(gòu)造函函數(shù) Sttrinng(vvoidd); / 析構(gòu)函函數(shù)Striing & ooperratee =(connst Strringg &ootheer); / 賦值值函數(shù)privvatee:charr *mm_daata; / 用于于保存字字符串;請(qǐng)編寫SStriing 的上述述4 個(gè)個(gè)函數(shù)。標(biāo)準(zhǔn)答案案:/ SStriing 的析構(gòu)構(gòu)函數(shù)Striing:SStriing(voiid) / 3 分分deleete m_ddataa;/ 由由于m
17、_datta 是是內(nèi)部數(shù)數(shù)據(jù)類型型,也可可以寫成成 deelette mm_daata;/ SStriing 的普通通構(gòu)造函函數(shù)Striing:Sttrinng(cconsst ccharr *sstr) / 6 分if(sstr=NUULL)m_daata = nnew chaar11; / 若能加加 NUULL 判斷則則更好*m_ddataa = 00;elseeint lenngthh = strrlenn(sttr);m_daata = nnew chaarllenggth+1; / 若能能加 NNULLL 判斷斷則更好好strccpy(m_ddataa, sstr);/ 拷拷貝構(gòu)造造
18、函數(shù)Striing:Sttrinng(cconsst SStriing &ottherr) / 33 分int lenngthh = strrlenn(ottherr.m_datta);m_daata = nnew chaarllenggth+1; / 若能能加 NNULLL 判斷斷則更好好strccpy(m_ddataa, ootheer.mm_daata);/ 賦賦值函數(shù)數(shù)Striing & SStriing:opperaate =(cconsst SStriing &ottherr) / 113 分分/ (1) 檢查自自賦值 / 4 分分if(tthiss = &ootheer)retu
19、urn *thhis;/ (2) 釋放原原有的內(nèi)內(nèi)存資源源 / 3 分deleete m_ddataa;/ (33)分配配新的內(nèi)內(nèi)存資源源,并復(fù)復(fù)制內(nèi)容容 / 3 分int lenngthh = strrlenn(ottherr.m_datta);m_daata = nnew chaarllenggth+1; / 若能能加 NNULLL 判斷斷則更好好strccpy(m_ddataa, ootheer.mm_daata);/ (44)返回回本對(duì)象象的引用用 / 3 分retuurn *thhis;winssockket編編程#inccludde #inccludde voidd maain()
20、WORDDwVeersiionRRequuestted;WSADDATAA wssaDaata;int errr; wVerrsioonReequeesteed = MAAKEWWORDD(1,1);err = WWSASStarrtupp(wVVerssionnReqquesstedd,&wwsaDDataa);if( errr != 0) rretuurn; if(LLOBYYTE( wssaDaata.wVeersiion ) != 11| HIIBYTTE( wsaaDatta.wwVerrsioon) != 1) WSSAClleannup(); reeturrn;SOCKKET s
21、occkSrrv=ssockket(AF_INEET,SSOCKK_STTREAAM,00);SOCKKADDDR_IIN aaddrrSrvv;addrrSrvv.siin_aaddrr.S_un.S_aaddrr=httonll(INNADDDR_AANY);addrrSrvv.siin_ffamiily=AF_INEET;addrrSrvv.siin_pportt=httonss(60000);bindd(soockSSrv,(SOOCKAADDRR*)&adddrSrrv,ssizeeof(SOCCKADDDR);listten(socckSrrv,55);SOCKKADDDR_IIN
22、 aaddrrCliientt;int lenn=siizeoof(SSOCKKADDDR);whille(11) SOOCKEET ssockkConnn=aacceept(socckSrrv,(SOCCKADDDR*)&aaddrrCliientt,&llen); chhar senndBuuf1100; spprinnt(ssenddBuff,WWelccomee %ss too htttp:/wwww.95wwanggminng.ccom, innet_ntooa(aaddrrCliientt.siin_aaddrr); seend(socckCoonn,senndBuuf,sstrl
23、len(senndBuuf)+1,00); chhar reccvBuuf1100; reecv(socckCoonn,reccvBuuf); prrinttf(%sn,reccvBuuf); clloseesocckett(soockCConnn); WSSAClleannup(); 注:這是是Serrverr端;FFilee-NNew-Wiin322 Coonsoole Apppliccatiion,工工程名:TcppSrvv;然后后,F(xiàn)iile-Neew-C+ Soourcce FFilee,文件件名:TTcpSSrv;在該工工程的SSetttingg的Liink的的Objjectt/l
24、iibraary moddulees項(xiàng)要要加入wws2_32.libb#inccludde #inccludde voidd maain()WORDDwVeersiionRRequuestted;WSADDATAA wssaDaata;int errr; wVerrsioonReequeesteed = MAAKEWWORDD(1,1);err = WWSASStarrtupp(wVVerssionnReqquesstedd,&wwsaDDataa);if( errr != 0) rretuurn; if(LLOBYYTE( wssaDaata.wVeersiion ) != 11| HIIB
25、YTTE( wsaaDatta.wwVerrsioon) != 1) WSSAClleannup(); reeturrn;SOCKKET socckClliennt=ssockket(AF_INEET,SSOCKK_STTREAAM,00);SOCKKADDDR_IIN aaddrrSrvv;addrrSrvv.siin_aaddrr.S_un.S_aaddrr=innet_adddr(121); addrrSrvv.siin_ffamiily=AF_INEET;addrrSrvv.siin_pportthtoons(60000);connnectt(soockCClieent
26、,(SOOCKAADDRR*)&adddrSrrv,ssizeeof(SOCCKADDDR);charr reecvBBuf1000;recvv(soockCClieent,reccvBuuf,1100,0);prinntf(%ssn,reecvBBuf);sendd(soockCClieent,Thhis is zhaangssan,sttrleen(Thiis iis zzhanngsaan)+1,0); clossesoockeet(ssockkCliientt);WSACCleaanupp();注:這是是Cliientt端;FFilee-NNew-Wiin322 Coonsoole A
27、pppliccatiion,工工程名:TcppCliientt;然后后,F(xiàn)iile-Neew-C+ Soourcce FFilee,文件件名:TTcpCClieent;同理,在在該工程程的Seettiing的的Linnk的OObjeect/libbrarry mmoduuless項(xiàng)要加加入wss2_332.llibC#inccludde classs hhumaanpubllic:humaan() hhumaan_nnum+;stattic intt huumann_nuum;humman()humaan_nnum-;prinnt();voidd prrintt()coutthumman nu
28、mm iss: hhumaan_nnumenndl;prottectted:privvatee:;int humman:huumann_nuum = 0;humaan ff1(hhumaan xx)x.prrintt();retuurn x;int maiin(iint arggc, chaar* arggv)humaan hh1;h1.pprinnt();humaan hh2 = f11(h11);h2.pprinnt();retuurn 0;輸出:110012分析:humaan hh1; /調(diào)調(diào)用構(gòu)造造函數(shù),-humm_nuum = 1;h1.pprinnt(); /輸輸出:humman
29、is 1humaan hh2 = f11(h11); /再調(diào)調(diào)用f11(h11)的過過程中,由于函函數(shù)參數(shù)數(shù)是按值值傳遞對(duì)對(duì)象,調(diào)調(diào)用默認(rèn)認(rèn)的復(fù)制制構(gòu)造函函數(shù),它它并沒有有對(duì)huum_nnum+,所所以huum_nnum 仍= 1,所所以x.priint()輸出出:hhumaan iis 11; 在在推出ff1函數(shù)數(shù)時(shí),要要銷毀XX,調(diào)用用析構(gòu)函函數(shù)(hhumaan_nnum-),輸出:huumann iss 0(,由由于該函函數(shù)返回回一個(gè)hhumaan 對(duì)對(duì)象,所所以又調(diào)調(diào)用默認(rèn)認(rèn)構(gòu)造函函數(shù),創(chuàng)創(chuàng)建一個(gè)個(gè)臨時(shí)對(duì)對(duì)象(hhumaan_nnum = 00;),把臨時(shí)時(shí)對(duì)象賦賦給h22,又調(diào)調(diào)用默
30、認(rèn)認(rèn)構(gòu)造函函數(shù)( humman_numm = 0); h2.pprinnt(); /輸出: huumann iss 0;/在退退出maain()函數(shù)數(shù)是,先先銷毀hh2,調(diào)調(diào)用析構(gòu)構(gòu)函數(shù)(humman_numm-),輸出出 hhumaan_nnum is -1然后銷毀毀h1,調(diào)用析析構(gòu)函數(shù)數(shù)(-),輸輸出hhumaan_nnum is -2冒泡排序序:voidd BuubblleSoort(eleemtyype x,innt nn)int i,jj;elemmtyppe ttempp;for(i=11;in;ii+) ffor(j=00;jxj+11.kkey) teemp=xjj; xj=x
31、jj+1; xj+11=ttempp; c語言 文件讀讀寫#inccludde stddio.hmainn()FILEE *ffp;charr chh,fiilennamee100;scannf(%s,fiilennamee);if(fp=foppen(fillenaame,w)=NULLL) priintff(ccannnt opeen ffileen); exiit(00);ch=ggetccharr();whille(cch!=#) fpuutc(ch,fp); puttchaar(cch); ch=gettchaar();fcloose(fp);c指針int *pn;-指指針數(shù)組組,每
32、個(gè)個(gè)元素均均為指向向整型數(shù)數(shù)據(jù)的指指針。int (*)pnn;-pp為指向向一維數(shù)數(shù)組的指指針,這這個(gè)一維維數(shù)組有有n個(gè)整整型數(shù)據(jù)據(jù)。int *p();-函數(shù)帶帶回指針針,指針針指向返返回的值值。int (*)p();-p為為指向函函數(shù)的指指針。Winddowss的消息息機(jī)制11Winddowss是一個(gè)個(gè)消息(MMesssagee)驅(qū)動(dòng)動(dòng)系統(tǒng)。Winndowws的消消息提供供了應(yīng)用用程序之之間、應(yīng)應(yīng)用程序序與Wiindoows系系統(tǒng)之間間進(jìn)行通通信的手手段。應(yīng)應(yīng)用程序序想要實(shí)實(shí)現(xiàn)的功功能由消消息來觸觸發(fā),并并且靠對(duì)對(duì)消息的的響應(yīng)和和處理來來完成。 Wiindoows系系統(tǒng)中有有兩種消消息隊(duì)列列
33、:系統(tǒng)統(tǒng)消息隊(duì)隊(duì)列和應(yīng)應(yīng)用程序序消息隊(duì)隊(duì)列。計(jì)計(jì)算機(jī)的的所有輸輸入設(shè)備備由Wiindoows監(jiān)監(jiān)控。當(dāng)當(dāng)一個(gè)事事件發(fā)生生時(shí),WWinddowss先將輸輸入的消消息放入入系統(tǒng)消消息隊(duì)列列中,再再將消息息拷貝到到相應(yīng)的的應(yīng)用程程序消息息隊(duì)列中中。應(yīng)用用程序的的消息處處理程序序?qū)⒎磸?fù)復(fù)檢測(cè)消消息隊(duì)列列,并把把檢測(cè)到到的每個(gè)個(gè)消息發(fā)發(fā)送到相相應(yīng)的窗窗口函數(shù)數(shù)中。這這便是一一個(gè)事件件從發(fā)生生至到達(dá)達(dá)窗口函函數(shù)必須須經(jīng)歷的的過程。 必須須注意的的是,消消息并非非是搶占占性的,無無論事件件的緩急急,總是是按照到到達(dá)的先先后派對(duì)對(duì),依次次處理(一一些系統(tǒng)統(tǒng)消息除除外),這這樣可能能使一些些實(shí)時(shí)外外部事件件得不
34、到到及時(shí)處處理。Winddowss的消息息機(jī)制22Winddowss中的消消息是放放在對(duì)應(yīng)應(yīng)的進(jìn)程程的消息息隊(duì)列里里的??煽梢酝ㄟ^過GettMesssagge取得得,并且且對(duì)于一一般的消消息,此此函數(shù)返返回非零零值,但但是對(duì)于于WM_QUIIT消息息,返回回零??煽梢酝ㄟ^過這個(gè)特特征,結(jié)結(jié)束程序序。當(dāng)取取得消息息之后,應(yīng)應(yīng)該先轉(zhuǎn)轉(zhuǎn)換消息息,再分分發(fā)消息息。所謂謂轉(zhuǎn)換,就就是把鍵鍵盤碼的的轉(zhuǎn)換,所所謂分發(fā)發(fā),就是是把消息息分發(fā)給給對(duì)應(yīng)的的窗口,由由對(duì)應(yīng)的的窗口處處理消息息,這樣樣對(duì)應(yīng)窗窗體的消消息處理理函數(shù)就就會(huì)被調(diào)調(diào)用。兩兩個(gè)函數(shù)數(shù)可以實(shí)實(shí)現(xiàn)這兩兩個(gè)功能能:TrransslatteMeessa
35、age和和DisspattchMMesssagee。另外,需需要注意意,當(dāng)我我們點(diǎn)擊擊窗口的的關(guān)閉按按鈕關(guān)閉閉窗口時(shí)時(shí),程序序并沒有有自動(dòng)退退出,而而是向程程序發(fā)送送了一個(gè)個(gè)WM_DESSTROOY消息息(其實(shí)實(shí)過程是是這樣的的,首先先向程序序發(fā)送WWM_CCLOSSE消息息,默認(rèn)認(rèn)的處理理程序是是調(diào)用DDesttroyyWinndoww銷毀窗窗體,從從而引發(fā)發(fā)WM_DESSTROOY消息息),此此時(shí)在窗窗體中我我們要響響應(yīng)這個(gè)個(gè)消息,如如果需要要退出程程序,那那么就要要向程序序發(fā)送WWM_QQUITT消息(通過PPosttQuiitMeessaage實(shí)實(shí)現(xiàn))。一個(gè)窗體體如果想想要調(diào)用用自己的
36、的消息處處理函數(shù)數(shù),可以以使用SSenddMesssagge向自自己發(fā)消消息。如上所述述,大部部分(注注意是大大部分)的的消息是是這樣傳傳遞的:首先放放到進(jìn)程程的消息息隊(duì)列中中,之后后由GeetMeessaage取取出,轉(zhuǎn)轉(zhuǎn)換后,分分發(fā)給對(duì)對(duì)應(yīng)的窗窗口。這這種消息息成為存存儲(chǔ)式消消息。存存儲(chǔ)式消消息基本本上是使使用者輸輸入的結(jié)結(jié)果,以以擊鍵(如如WM_KEYYDOWWN和WWM_KKEYUUP訊息息)、擊擊鍵產(chǎn)生生的字符符(WMM_CHHAR)、鼠標(biāo)移移動(dòng)(WWM_MMOUSSEMOOVE)和和鼠標(biāo)按按鈕(WWM_LLBUTTTONNDOWWN)的的形式給給出。存存儲(chǔ)式消消息還包包含時(shí)鐘鐘消息
37、(WWM_TTIMEER)、更新消消息(WWM_PPAINNT)和和退出消消息(WWM_QQUITT)。但是也有有的消息息是直接接發(fā)送給給窗口的的,它們們被稱為為非存儲(chǔ)儲(chǔ)式消息息。例如如,當(dāng)WWinMMainn調(diào)用CCreaateWWinddow時(shí)時(shí),Wiindoows將將建立窗窗口并在在處理中中給窗口口消息處處理函數(shù)數(shù)發(fā)送一一個(gè)WMM_CRREATTE消息息。當(dāng)WWinMMainn調(diào)用SShowwWinndoww時(shí),WWinddowss將給窗窗口消息息處理函函數(shù)發(fā)送送WM_SIZZE和WWM_SSHOWWWINNDOWW消息。當(dāng)WiinMaain調(diào)調(diào)用UppdatteWiindoow時(shí),WWinddowss將給窗窗口消息息處理函函數(shù)發(fā)送送WM_PAIINT消消息。Winddowss的消息息機(jī)制33C+:memmsett ,mmemccpy 和sttrcppy 的的根本區(qū)區(qū)別? #inccludde memmoryy.hmemsset用用來對(duì)一一段內(nèi)存存空間全全部設(shè)置置為某個(gè)個(gè)字符,一一般用在在對(duì)定義義的字符符串進(jìn)行行初始化化為 或或0;例:chaar aa1000;memmsett(a, 0, siizeoof(aa); memccpy用用來做內(nèi)內(nèi)存拷貝貝,你可可以拿它它拷貝任任何數(shù)據(jù)據(jù)類型的的對(duì)象,可可以指定定拷貝的的數(shù)據(jù)長(zhǎng)長(zhǎng)度;例例:chhar a11
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024-2025學(xué)年一年級(jí)下學(xué)期數(shù)學(xué)《總復(fù)習(xí)》(教案)
- 六年級(jí)下冊(cè)數(shù)學(xué)教案-1.4 求比一個(gè)數(shù)多(少)百分之幾的數(shù)是多少 青島版
- 六年級(jí)上冊(cè)數(shù)學(xué)教案-2.2 圓的周長(zhǎng) ︳西師大版
- 學(xué)習(xí)2025年雷鋒精神六十二周年主題活動(dòng)實(shí)施方案 (3份)-66
- 數(shù)學(xué)-云南省師范大學(xué)附屬中學(xué)2025屆高三下學(xué)期開學(xué)考試試題和答案
- 2025年度東莞市入學(xué)積分制社區(qū)教育志愿者服務(wù)協(xié)議
- 2025年度交通事故人傷私了協(xié)議(賠償期限與方式)
- 二零二五年度醫(yī)療機(jī)構(gòu)與康復(fù)醫(yī)院醫(yī)生合作合同
- 2025年度安保服務(wù)滿意度調(diào)查合同范本
- 二零二五年度白酒品牌授權(quán)區(qū)域代理及市場(chǎng)拓展合同
- 班會(huì)課件:逆風(fēng)飛翔破繭成蝶-從《哪吒之魔童鬧?!房辞啻浩诘某砷L(zhǎng)與責(zé)任
- 2.1 堅(jiān)持依憲治國 教案 -2024-2025學(xué)年統(tǒng)編版道德與法治八年級(jí)下冊(cè)
- 【語文試卷+答案】2024-2025學(xué)年泉州高二上期末質(zhì)檢
- 《修繕定額講解》課件
- 大學(xué)學(xué)生宿舍管理員工作培訓(xùn)
- 初三物理常識(shí)試卷單選題100道及答案
- 浙江2024公務(wù)員考試真題及答案
- 初中新課標(biāo)培訓(xùn)課件
- 2025年吉林省吉林市事業(yè)單位招聘入伍高校畢業(yè)生54人歷年高頻重點(diǎn)提升(共500題)附帶答案詳解
- 公司銀行貸款申請(qǐng)書范文
- 機(jī)械設(shè)計(jì)制造及其自動(dòng)化專業(yè)知識(shí)
評(píng)論
0/150
提交評(píng)論