資源描述:
《C語言與C++語言的區(qū)別ppt課件.ppt》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、C語言與C++語言的區(qū)別C語言與C++語言的最主要區(qū)別C是面向過程的語言,C++是面向?qū)ο蟮恼Z言。因此,C中沒有類的概念,全部代碼都包含在函數(shù)中。C提供了大量的庫函數(shù):輸入輸出函數(shù):printf(),scanf(),…動態(tài)內(nèi)存分配函數(shù):malloc(),free(),…內(nèi)存管理:memset(),memcpy(),…...C++程序與C程序?qū)Ρ?includeusingnamespacestd;intmain(){for(inti=0;i<10;i++){cout<<"Hell
2、o!"<intmain(){inti;for(i=0;i<10;i++){printf("Hello!");}return0;}C++CC語言與C++語言的區(qū)別變量定義位置結(jié)構(gòu)體變量數(shù)據(jù)類型輸入輸出動態(tài)內(nèi)存分配其他區(qū)別1.變量定義位置C89要求所有變量都必須定義在塊的最前部C++沒有這個要求,可以在程序任意位置定義新的變量2.結(jié)構(gòu)體變量在C++中,struct結(jié)構(gòu)體支持成員函數(shù)的定義,C中不行。如果在C的struct中定義函數(shù),
3、編譯時會顯示一個“field‘functionname’declaredasfunction”錯誤2.結(jié)構(gòu)體變量(續(xù))/*ch3_10.c*/structA{inta;intb();};intmain(){structAc;c.a=2;return0;}編譯錯誤:“ch3_10.c:5:error:field'b'declaredasafunction”C++標(biāo)準(zhǔn)可以通過編譯2.結(jié)構(gòu)體變量(續(xù))在C語言中,聲明一個結(jié)構(gòu)體類型A之后,使用下面的語句來定義結(jié)構(gòu)體變量a:structAa;而C++語言中
4、可以省略struct3.數(shù)據(jù)類型C++中有bool(或boolean類型);C中沒有這樣的bool類型,均為數(shù)值類型!C編譯器不能通過編譯,C++編譯器可以boola;a=1;4.輸入輸出C中使用printf、scanf輸入輸出使用時必須包含stdio.h頭文件inta;scanf("%d",&a);printf("您輸入的數(shù)值是%d",a);A.scanf()函數(shù)功能:從鍵盤讀入指定格式的數(shù)據(jù)格式:scanf("控制字符串",輸入項列表);注意:scanf中各變量一定是表示地址的標(biāo)識符(加&
5、)控制字符串控制字符串有兩部分組成:格式說明形式:%[<修飾符>]<格式字>普通字符空格可打印字符格式說明各格式字符及其意義:(詳見C教程)d:輸入一個十進制整數(shù)o:輸入一個八進制整數(shù)x:輸入一個十六進制整數(shù)f:輸入一個小數(shù)形式的浮點數(shù)e:輸入一個指數(shù)形式的浮點數(shù)c:輸入一個字符s:輸入一個字符串空格在多個輸入時,一般用空格或回車作為分隔符若以空格作為分隔符,當(dāng)輸入中包含字符類型時,可能產(chǎn)生非預(yù)期的結(jié)果scanf("%d%c",&a,&ch);輸入:45q輸出:45空格空格(續(xù))如下語句會有正確輸
6、出此處%d后的空格,就可以跳過字符'q'前的所有空格scanf("%d%c",&a,&ch);輸入:45q輸出:45q可打印字符看一個例子輸入為:1,2,q可以得到a=1,b=2,ch=q輸入為:12q除a的值為1外,對b與ch的賦值失敗scanf("%d,%d,%c",&a,&b,&ch);B.printf()函數(shù)功能:從缺省輸出設(shè)備(一般為顯示器)輸出規(guī)定格式的字符串格式:printf("控制字符串",輸入項列表);控制字符串控制字符串有兩部分組成:格式說明形式:%[<修飾符>]<格式字>普通
7、字符空格可打印字符格式說明各格式字符及其意義:(詳見C教程)c:按字符型輸出o:按八進制輸出d:按十進制輸出x:按十六進制輸出u:按無符號整數(shù)輸出f:按浮點型小數(shù)輸出g:按e和f格式中較短的一種輸出e:按科學(xué)計數(shù)法輸出普通字符普通字符:可打印字符主要是說明字符,按原樣輸出,支持漢字輸出轉(zhuǎn)義字符(例)不能直接打印,控制產(chǎn)生特殊的輸出效果普通字符(續(xù))轉(zhuǎn)義字符示例i=789,n=123,a=92.34567,且i為整型,n為長整型。printf("%4dt%7.4ft%lu",i,a,n)
8、;輸出為:78992.3457123C語言輸入輸出總結(jié)輸入輸出可能是C和C++的最明顯的區(qū)別C中用scanf(),printf()來完成輸入輸出操作C++中全局對象cin、cout來輸入輸出,比C更方便,而且類型檢查機制更加完善C++中的使用方式new申請delete釋放C中的使用方式malloc()申請free()釋放5.動態(tài)內(nèi)存分配函數(shù)原型:void*malloc(longsize);作用:在對內(nèi)存中分配size各字節(jié),并返回了指向這塊內(nèi)存首地址的指針如果分配失敗,返回NULL