C语言基础知识梳理
C語(yǔ)言是面向過(guò)程的,而C++是面向?qū)ο蟮?br />
C和C++的區(qū)別:
C是一個(gè)結(jié)構(gòu)化語(yǔ)言,它的重點(diǎn)在于算法和數(shù)據(jù)結(jié)構(gòu)。C程序的設(shè)計(jì)首要考慮的是如何通過(guò)一個(gè)過(guò)程,對(duì)輸入(或環(huán)境條件)進(jìn)行運(yùn)算處理得到輸出(或?qū)崿F(xiàn)過(guò)程(事務(wù))控制)。
C++,首要考慮的是如何構(gòu)造一個(gè)對(duì)象模型,讓這個(gè)模型能夠契合與之對(duì)應(yīng)的問(wèn)題域,這樣就可以通過(guò)獲取對(duì)象的狀態(tài)信息得到輸出或?qū)崿F(xiàn)過(guò)程(事務(wù))控制。?所以C與C++的最大區(qū)別在于它們的用于解決問(wèn)題的思想方法不一樣。之所以說(shuō)C++比C更先進(jìn),是因?yàn)椤?設(shè)計(jì)這個(gè)概念已經(jīng)被融入到C++之中?”。
C與C++的最大區(qū)別:在于它們的用于解決問(wèn)題的思想方法不一樣。之所以說(shuō)C++比C更先進(jìn),是因?yàn)椤?設(shè)計(jì)這個(gè)概念已經(jīng)被融入到C++之中?”,而就語(yǔ)言本身而言,在C中更多的是算法的概念。那么是不是C就不重要了,錯(cuò)!算法是程序設(shè)計(jì)的基礎(chǔ),好的設(shè)計(jì)如果沒(méi)有好的算法,一樣不行。而且,“C加上好的設(shè)計(jì)”也能寫(xiě)出非常好的東西。
算法結(jié)構(gòu):一、順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu);二、循環(huán)結(jié)構(gòu)又分為while型、until型、for循環(huán)結(jié)構(gòu);程序流程圖;
結(jié)構(gòu)化程序設(shè)計(jì)方法:(1)自頂向下;(2)逐步細(xì)化;(3)模塊化設(shè)計(jì);(4)結(jié)構(gòu)化編碼。
喜歡或者想學(xué)習(xí)C語(yǔ)言的小伙伴可以加一下我自己的C語(yǔ)言交流群815393895
數(shù)據(jù)類(lèi)型:
常量:常量包括字面常量、直接常量和符號(hào)常量;
變量:C語(yǔ)言規(guī)定標(biāo)志符只能由字母、數(shù)字和下劃線三種字符組成,且第一個(gè)字符必須是字母或者下劃線;必須壓迫先定義后使用;每一個(gè)變量被定義以確定類(lèi)型后,在編譯時(shí)就能為其分配相應(yīng)的存儲(chǔ)單元;
整數(shù)類(lèi)型:整數(shù)常量有十進(jìn)制、八進(jìn)制和十六進(jìn)制;“%d”
整形變量:數(shù)據(jù)在內(nèi)存中存放形式是以二進(jìn)制形式存放;有int型、short?int型和long?int型,無(wú)符號(hào)整型變量的范圍是-32768—32767,有符號(hào)型為0~65535.通常把long定義為32位,把short定義為16位,int可以是32位也可以為16位,這都主要取決于機(jī)器字長(zhǎng)。
實(shí)型數(shù)據(jù)
實(shí)型常量的表示方法:(1)十進(jìn)制,0.0;(2)指數(shù)形式,123e3
實(shí)型變量:實(shí)數(shù)型數(shù)據(jù)在內(nèi)存中的存放形式,一般在內(nèi)存中占4個(gè)字節(jié),分成整數(shù)部分和小數(shù)部分存放。實(shí)型變量分為float型、double型long?double型。實(shí)型數(shù)據(jù)會(huì)存在舍入誤差。
實(shí)型常量的類(lèi)型:C編譯系統(tǒng)將實(shí)型常量作為雙精度來(lái)處理。
字符型數(shù)組:
(一)字符常量:轉(zhuǎn)義字符(?——換行,——tab,?——回車(chē),——換頁(yè),——退格,ddd——1到3位8進(jìn)制的數(shù)代表的字符)
(二)字符變量:字符數(shù)據(jù)存儲(chǔ)形式實(shí)際是以ASCII碼存儲(chǔ)。“%c”
字符串常量:雙撇號(hào)括起來(lái)的一系列字符序列。
C的運(yùn)算符有以下幾種:
1、算術(shù)運(yùn)算符(+?-?*?/%)結(jié)合方向自左向右
2、關(guān)系運(yùn)算符(>?<?==?>=
3、邏輯運(yùn)算符(!?&&?||)
4、位運(yùn)算符(>?~?|?^?&)
5、賦值運(yùn)算符(=及符號(hào)擴(kuò)展賦值運(yùn)算符)
6、條件運(yùn)算符(??:?)
7、逗號(hào)運(yùn)算符(?,?)
8、指針運(yùn)算符(*?&)
9、求字節(jié)運(yùn)算符(sizeof)
10、強(qiáng)制類(lèi)型轉(zhuǎn)換運(yùn)算符((類(lèi)型))
11、分量運(yùn)算符(?.?->)
12、下標(biāo)運(yùn)算符([])
13、其他
控制語(yǔ)句:完成一定的控制功能。
1、if()~else~
2、for()~
3、while()~
4、do~while()
5、continue
6、break
7、switch
8、goto
9、return
字符數(shù)據(jù)的輸入輸出:
1、putchar()輸入字符變量
2、getchar()只能接受一個(gè)字符
格式輸入輸出:
1、printf(%d—整型,%c—字符型,%ld,%md,%o,%u,%s,%-m.nf,%e,%g)
2、scanf(格式控制,地址列表)
數(shù)組
一維數(shù)組的定義:類(lèi)型說(shuō)明符?數(shù)組名【常量表達(dá)式】;先定義后引用;一維數(shù)組初始化時(shí)可以只對(duì)一部分元素初始化,在對(duì)全部數(shù)組元素初始化的時(shí)候可以部規(guī)定長(zhǎng)度;但是若被定義的數(shù)組長(zhǎng)度與提供的初始值不一樣時(shí),則數(shù)組長(zhǎng)度不能省略。
二維數(shù)組的定義:類(lèi)型說(shuō)明符?數(shù)組名【常量表達(dá)式】【常量表達(dá)式】C語(yǔ)言中存放二維數(shù)組是先存放第一行的元素,緊接著是第二行,其實(shí)也是以一維的方式存放。如果初始化時(shí)能指定所有元素的初始值,第一維大小可以省略,但是第二維不能省略。
字符數(shù)組:定義和初始化跟數(shù)組差不多,只是需要加單引號(hào)。字符和字符串結(jié)束標(biāo)志,C語(yǔ)言規(guī)定,以‘’代表。
字符串處理函數(shù):
1、puts()將一個(gè)字符串輸出到終端
2、gets()從終端輸入一個(gè)字符串到字符數(shù)組,并且得到一個(gè)函數(shù)值。
3、strcat()鏈接兩個(gè)字符數(shù)組中的字符串。
4、strcpy()字符串復(fù)制函數(shù)。
5、strcmp()比較字符串作用。
6、strlen()測(cè)試字符串長(zhǎng)度的函數(shù)不包括“”
7、strlwr()將字符串中的大寫(xiě)字母轉(zhuǎn)換為小寫(xiě)字母。
8、strupr()將字符串中的小寫(xiě)字母轉(zhuǎn)換為大寫(xiě)字母。
函數(shù)
(1)一個(gè)源程序由多個(gè)函數(shù)組成。
(2)C程序的執(zhí)行從main()函數(shù)開(kāi)始;
(3)所有函數(shù)都是平行的;
(4)函數(shù)分類(lèi);可以分為標(biāo)準(zhǔn)和自定義,還可以分為有參函數(shù)和無(wú)參函數(shù)。
函數(shù)定義的一般形式:
(1)類(lèi)型標(biāo)志符函數(shù)名()
{
聲明部分
語(yǔ)句
}
(2)類(lèi)型標(biāo)志符函數(shù)名(形式參數(shù)列表)
{聲明部分
語(yǔ)句
}
函數(shù)參數(shù)和函數(shù)值:
一、關(guān)于形參和實(shí)參的說(shuō)明
(1)在定義函數(shù)中指定的形參,在未出現(xiàn)函數(shù)調(diào)用時(shí),他們并不占用內(nèi)存中的存儲(chǔ)單元,只有發(fā)生調(diào)用時(shí),才會(huì)分配內(nèi)存。
(2)實(shí)參可以是常量、變量或者表達(dá)式;有時(shí)傳遞的時(shí)地址;
(3)在被定義中,形參必須指定類(lèi)型;
(4)實(shí)參與形參的類(lèi)型應(yīng)相同或賦值兼容;
(5)C語(yǔ)言規(guī)定,實(shí)參變量對(duì)形參變量的數(shù)據(jù)傳遞是“值傳遞”,即單向傳遞,只有實(shí)參傳遞給形參,而不能由形參傳遞給實(shí)參。
函數(shù)的返回值:
希望通過(guò)函數(shù)調(diào)用使主調(diào)函數(shù)得到一個(gè)確定的值。
(1)函數(shù)的返回值是通過(guò)函數(shù)中的return語(yǔ)句獲取的。
(2)函數(shù)值的類(lèi)型;
(3)如果函數(shù)值的類(lèi)型和return語(yǔ)句中表達(dá)式的值不一樣,則以函數(shù)類(lèi)型為準(zhǔn)。
(4)如果調(diào)用函數(shù)中沒(méi)有return語(yǔ)句,并不帶回一個(gè)確定的用戶(hù)需要的值,函數(shù)不是不帶回值,而只是不帶回有用的值,帶回一個(gè)不確定的值。
(5)如不需要帶回任何值,用void。
函數(shù)的調(diào)用:調(diào)用方式
1、函數(shù)語(yǔ)句;2、函數(shù)表達(dá)式;3、函數(shù)參數(shù)。
被調(diào)用的函數(shù)的聲明:一個(gè)函數(shù)調(diào)用另一個(gè)函數(shù)所具備的條件:
1、首先被調(diào)用的函數(shù)必須是已經(jīng)存在的函數(shù);
2、如果使用庫(kù)函數(shù),一般應(yīng)該在本文件開(kāi)頭用#include命令將調(diào)用有關(guān)庫(kù)函數(shù)時(shí)在所需要用到的信息“包含”到本文件中。.h文件是頭文件所用的后綴。
3、如果使用用戶(hù)自己定義的函數(shù),而且該函數(shù)與使用它的函數(shù)在同一個(gè)文件中,一般還應(yīng)該在主調(diào)函數(shù)中對(duì)被調(diào)用的函數(shù)做聲明。
4、如果被調(diào)用的函數(shù)定義出現(xiàn)在主調(diào)函數(shù)之前可以不必聲明。
5、如果已在所有函數(shù)定義之前,在函數(shù)的外部已做了函數(shù)聲明,則在各個(gè)主調(diào)函數(shù)中不必多所調(diào)用的函數(shù)在做聲明。
總結(jié)
- 上一篇: Web项目:解决eclipse中jsp文
- 下一篇: Tomcat 服务:解决 Apache