下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、編程入門基礎(chǔ)知識總結(jié)基本知識程序 = 算法 + 數(shù)據(jù)結(jié)構(gòu),算法是對操作的描述,數(shù)據(jù)結(jié)構(gòu)是對數(shù)據(jù)的描述。偽代碼:pseudo code程序一般包括:(1)預(yù)處理命令:#include等(2)全局聲明部分(3)函數(shù):函數(shù)首部(聲明)、函數(shù)體(局部聲明+執(zhí)行部分)程序執(zhí)行過程源程序->編譯成目標(biāo)程序obj->連接目標(biāo)程序成可執(zhí)行文件類:數(shù)據(jù)成員+成員函數(shù)命名空間實際上就是一個由程序設(shè)計者命名的內(nèi)存區(qū)域。程序員可以根據(jù)需要指定一些有名字的空間域,把一些全局實體分別放在各個命名空間中,從而與其它全局實體分隔開,解決名字沖突,防止全局命名空間污染。C+庫的所有標(biāo)識符(標(biāo)準(zhǔn)頭文件中函數(shù)、類、對象
2、、類模版)都是在std命名空間定義的A 的ASCII碼值65 a 的971.數(shù)據(jù)類型基本類型:整型、浮點型、字符型、布爾型構(gòu)造類型:枚舉、數(shù)組、結(jié)構(gòu)體類型(struct)、公用體(union)、類類型指針類型引用類型空類型:nullint 4 unsigned int 4 short int 2 unsigned short int 2 long int 4 unsigned long int 4char 1 uchar 1float 4 double 8 long double 8無符號:不用保存符號位,故比有符號多了一位有符號:數(shù)值用補碼存放(無論正負(fù)),最高位為符號位VC中,long d
3、ouble與double字節(jié)數(shù)相同,故long double是無用的GCC中,long double則有12個字節(jié)無負(fù)值的量可以定義為unsigned int,如年齡、學(xué)號等,以增大存儲范圍。short int,long int,unsigned int這些類型后面的int可以省略整型表示:十進制,后面加L 或 l八進制,前面加0十六進制,前面加0x浮點數(shù)表示:默認(rèn)為雙精度型double后面加 f 或 F 則為單精度float后面加 l 或 L 則為長精度型long double指數(shù)形式數(shù)符 數(shù)字部分 指數(shù)部分a = 3.14e2 a=0.314e4 a=31.4e1 a=3140e-1浮點數(shù)
4、,不管是用小數(shù)形式還是指數(shù)形式表示,在內(nèi)存中都是以指數(shù)形式表示的,且數(shù)字部分必須小于1如3.14159 在內(nèi)存中表示為 + .314159 3 ,數(shù)字部分為.314159,是小于1的字符型字符型在內(nèi)存中存儲的是ASCII碼,也是整型,故而可以把字符型賦給整型字符串后面,編譯系統(tǒng)會加個'0'作為結(jié)束符符號常量用符號代表一個常量,如#define PI 3.14159在編譯時,系統(tǒng)會把符號常量替換成具體的值2.變量變量:程序運行期間,值可變的量變量名:代表內(nèi)存中的一個存儲單元,在編譯連接時由系統(tǒng)給每一個變量分配一個地址標(biāo)識符:標(biāo)識實體名字的有效字符序列,字母、數(shù)字、下劃線常變量:定
5、義變量時加上const,運行期間值不可變,也即只讀變量區(qū)別#define 定義的符號常量與const定義的常變量符號常量只是用一個符號代表一個常量,在編譯時把所有符號常量替換為指定的值,它沒有類型,在內(nèi)存中不存在以符號常量命名的存儲單元常變量具有變量的特征,具有類型,在內(nèi)存中有以它命名的存儲單元,與一般變量不同的是,常變量代表的存儲單元值不可變。強定義的好處1.保證變量名使用的正確,不正確會在編譯時報錯2.每個變量指定為一確定類型,在編譯時就能為其分配存儲單元3.編譯時即可檢查變量進行的運算是否合法。3. 運算符二進制位運算& 二進制 按位與| 二進制按位或 按位異或<<
6、左移位>> 右移位 + - 自加自減運算符+i 使用i之前,i先自加i+ 使用i之后,i再自加+ - 結(jié)合方向為自右向左例:!x+ 先取非,再+(i+)+6 先i+6,后i+,不管有無括號,都是先運算,再自加(+i)+6 先自加,再加6-i+ :i左面是符號運算符,右面是自加運算符,設(shè)i等于3,運算過程相當(dāng)于 -(i+),即 -i=-3 -3+1=-2a = -i+:a結(jié)果為-3,先賦值,再自加;5-i+ =? 答案2 ?待測試i=1,j=2,則a = i+j ? 答案:3 因為相當(dāng)于a=(i+)+j;i=1,j=2,則a=i+(+j)? 答案:4賦值運算符=的優(yōu)先級小于+ - 運
7、算符示例:int arr = 6,7,8,9,10; sint *ptr = arr; *(ptr+) += 123; printf("%d,%d",*ptr,*(+ptr);解:*(ptr+) += 123; 相當(dāng)于 *ptr +=123; *ptr+; 故arr0 = 129; ptr指向arr1 printf函數(shù)從右向左壓棧,運算順序:+ptr; 輸出結(jié)果: 8 8cout也是自右向左壓棧。逗號運算符又稱順序求值運算符a = 3*4,a*5 則 a=? 答案 12 ? 注意逗號運算符優(yōu)先級最低。注:整個逗號表達式的值為60(a=3*4=12,12*5 =60)x=(a
8、=3,6*3) 則 x=18x=a=3,6*a 則 x=33.內(nèi)存存儲浮點數(shù)在內(nèi)存里和整數(shù)存儲方式不同float a =1.0f;cout<<(int)a=(int&a); (int&a) 相當(dāng)于把該浮點數(shù)地址開始的sizeof(int)個字節(jié)當(dāng)成int型數(shù)據(jù)輸出,其值并不為1(int)a顯示轉(zhuǎn)換等于14.類型轉(zhuǎn)換轉(zhuǎn)換本質(zhì):按存儲單元中的存儲形式直接傳送(1)浮點型賦給整型,舍棄小數(shù)部分(2)double型賦給float,防止溢出錯誤(3)int, short, long賦給char,原封不動取低八位(4)signed賦給unsigned,符號位照搬。負(fù)數(shù)以補碼形式
9、存放,-1賦給unsigned int,結(jié)果為65536.整數(shù)不會變,除非兩個長度不同(int,long)發(fā)生截斷5.C+輸入輸出C+輸入輸出包含三個方面的內(nèi)容(1)對系統(tǒng)指定的標(biāo)準(zhǔn)設(shè)備的輸入輸出。即從鍵盤輸入、輸出到顯示器屏幕,稱標(biāo)準(zhǔn)輸入輸出,簡稱標(biāo)準(zhǔn)I/O(2)以外出磁盤文件為對象進行輸入輸出,稱文件I/O(3)對內(nèi)存中指定空間進行輸入輸出,通常指定一個字符數(shù)組作為存儲空間,稱字符串輸入輸出,簡稱串I/O在C+中,輸入輸出流被定義為類。C+的I/O庫中的類稱為流類,用流類定義的對象稱流對象。C+中輸入輸出是調(diào)用輸入輸出流庫中的流對象cin、cout實現(xiàn)的,即I/O不是C+本身定義的,而是編
10、譯系統(tǒng)的I/O庫中定義的。I/O控制符#include <iomanip>setprecision(n) 設(shè)置精度為n,十進制輸出時,n代表有效數(shù)字位數(shù)包括整數(shù)和小數(shù);fixed(固定小數(shù)位數(shù))和scientific(指數(shù))形式輸出時,n指小數(shù)位數(shù)(不包括整數(shù)部分)double a = 123.4567890123456cout << a; /十進制輸出,輸出123.456 默認(rèn)精度為6cout<<setprecision(9)<<a; /十進制,輸出123.456789 精度為9cout<<setprecision(6); /恢復(fù)默
11、認(rèn)精度cout<<setioflags(iOS:fixed)<<a; /固定位數(shù),123.456789 ,此時精度表示小數(shù)位數(shù),精度為默認(rèn)的66.getchar() 和 putchar()cout<<getchar(); /讀入的實際是ASCII碼,故輸出為字符ASCII碼,97,而非讀入的字符cout<<(c=getchar(); /輸出為字符while(c=getchar()!='n') /循環(huán)讀入字符的控制7.函數(shù)與模版函數(shù)原型:不同具體形參的函數(shù)聲明如:float add(float,float)主要作用:根據(jù)函數(shù)原型,在
12、程序編譯階段對調(diào)用函數(shù)的合法性進行全面檢查。函數(shù)重載:同一函數(shù)名定義的多個函數(shù),這些函數(shù)的參數(shù)個數(shù),參數(shù)類型,參數(shù)順序至少有一項不同,一個函數(shù)不能既是重載函數(shù),又是帶默認(rèn)參數(shù)的函數(shù)。函數(shù)模版:適用于函數(shù)個數(shù)相同,函數(shù)體相同,而只有類型不同的情況cpp view plain copy 01.#include <iostream> 02.using namespace std; 03.template <typename T> / template <class T> 04.T max(T a, T b, T c) 05. 06. if(b>a) a =
13、b; 07. if(c>a) a = c; 08. return a; 09. 10.int main() 11. 12. int a=1,b=2,c=3; 13. cout<<T(a,b,c); 14. float d=1.1,e=2.2,f=3.3; 15. cout<< T(d,e,f); 16. 變量作用域:變量有效范圍,有四種:文件作用域 file scope 函數(shù)作用域 function scope塊作用域 block scope 函數(shù)原型作用域 function prototype scope遞歸函數(shù):函數(shù)體中,直接或間接調(diào)用函數(shù)本身的函數(shù)。變量的存
14、儲類別:外部、局部(相對于函數(shù)而言)全局變量(也即外部變量)靜態(tài)局部變量(static)自動變量(不加static的局部變量)寄存器變量(register) 存放在CPU中,而非內(nèi)存中,這樣在使用時就省去了從內(nèi)存中載入寄存器的過程。但只是建議性的,優(yōu)化編譯系統(tǒng)自動識別使用頻繁的變量,從而自動將變量放入寄存器中。extern聲明的外部變量即提前引用申明,表示該變量是將在下面定義的全局變量或在其它文件中定義(本文件中不用extern,引用該變量的外部文件用extern進行聲明)static聲明的靜態(tài)外部變量只能被本文件使用,而不能被外部文件使用的全局變量,這樣不同文件中的全局變量不會相互干擾,為程
15、序模塊化、通用化提供方便。注:全局變量也是靜態(tài)存儲的。內(nèi)部函數(shù)與外部函數(shù)內(nèi)部函數(shù):static 聲明,文件內(nèi)使用外部函數(shù):另一個文件里extern聲明,表示是其它文件的函數(shù),extern可以省略宏定義#define PI 3.14 定義符號常量#define Area(a,b) a*b /定義函數(shù)功能,下面當(dāng)作函數(shù)來用。#include <iostream> 'iostream' 區(qū)別<> 在系統(tǒng)目錄尋找,找不到報錯' ' 在當(dāng)前目錄尋找,找不到報錯 字符數(shù)組(1) char str = "i am happy"數(shù)組長
16、度為11,而非10,因為后面有一個'0'(2) char str = 'i','a','m','h','y'數(shù)組長度為5,系統(tǒng)不會自動為其在后面加'0'因此,(1),(2)是不同的輸出字符數(shù)組:cout<<str; string類字符數(shù)組是C中的處理方式,C+中用string類,#include <string>字符串變量中不會存放'0',只存放字符串本身,故string str ="hello" 的長度為5,要注意。字符串
17、變量存儲的實際是字符串的指針,4個字節(jié),sizeof(string) = 4;string name="i","am","happy" sizeof(name) = 3*4 = 12; 變量與指針:int *p = &i; /int型指針變量,定義時的*只是表示指針類型p是指針變量,其值是變量i的地址,*p則是存儲單元,*&a與*p同,都表示變量a指向數(shù)組的指針int a10 = ;int *p;p = &a0; /與下面等價,都指向數(shù)組第一個元素,因為數(shù)組名本身就是表示數(shù)組的地址p = a;*p+ 相當(dāng)于*(
18、p+),先得到*p的值,p再+移到下一個元素(*p)+則是使*p的值+1二維數(shù)組的指針表示: *(*(p+i)+j) 表示 ai,j*int (*p)n p為指向含n個元素的數(shù)組的指針int *pn 定義指針數(shù)組P函數(shù)指針 指向函數(shù)的指針,主要用作形參int max(int,int);int (*p)(int,int);p = max; 賦值(地址)p(1,2) /調(diào)用引用int a = 10;int &b = a; b是對a的引用引用傳遞,引用型變量作為函數(shù)形參cpp view plain copy 01./值會改變 02.main 03. int i=5,j=6; 04. swap
19、(i,j) 05. 06.void swap(int &a, int &b) /這里的&不是“a的地址”,而是指“a是一個引用型變量”,&是個聲明符 07. 08. int temp; 09. temp = a; 10. a= b; 11. b=temp; 12. 傳遞變量地址:形參是指針變量,實參是變量地址,這種虛實結(jié)合的方法仍然是“值傳遞”方式,只是實參的值是變量地址而已。cpp view plain copy 01./值會改變 02.main() 03. 04. int i=5,j=6; 05. swap(&i,&j) 06. 07.voi
20、d swap(int *p1, int *p2) /這里的*號也只表示是指針類型 08. 09. int temp; 10. temp = *p1; 11. *p1 = *p2; 12. *p2 = temp; 13. 結(jié)構(gòu)體變量 struct作函數(shù)參數(shù)時有三種形式(1)用結(jié)構(gòu)體變量名作形參這時形參要開辟內(nèi)存單元,實參中全部內(nèi)容通過值傳遞方式一一傳遞給形參,時空開銷大,效率低(2)用指向結(jié)構(gòu)體變量的指針作形參,只有四個字節(jié)void printed(student *p) cout<<p->num;(3)用結(jié)構(gòu)體變量的引用變量作形參Student stu;print(stu);
21、void print(Student &stu) cout<stu.num;new delete 動態(tài)內(nèi)存分配new 類型(初值),返回地址,分配失敗返回NULLfloat *f = new float(3.14);int *i = new int(6);int *k = new int54; /數(shù)組delete 變量 delete f; delete i; 數(shù)組 delete k;Enum 枚舉類型聲明枚舉類型 enum weekdaysun,mon,tue,wed,thu,fri,sat;定義枚舉變量 weekday workday,week_end;變量賦值: workda
22、y = mon; 或 workday = weekday(2);枚舉常量對應(yīng)值從0開始,0,1,2,3.typedef 聲明新類型typedef int INTEGER ,相當(dāng)于為int起了個別名,下面程序中就可以直接用INTEGER作int用了主要為了方便系統(tǒng)移植,如long int在VC中4個字節(jié),在GCC中占8個字節(jié),直接用int的話可能會溢出,用INTEGER就不用擔(dān)心了,只要把ypedef int INTEGER 聲明語句一改就行運算符重載方法是定義一個重載運算符的函數(shù),在需要執(zhí)行被重載的運算符時,系統(tǒng)就自動調(diào)用該函數(shù),以實現(xiàn)響應(yīng)運算。即運算符重載是通過定義函數(shù)實現(xiàn)的,運算符重載實際
23、上是函數(shù)重載。格式: 函數(shù)類型 operator 運算符名稱 (形參表列)對運算符的重載處理例如:將 + 用于Complex類(復(fù)數(shù))的加法運算,函數(shù)原型如下:Complex operator + (Complex& c1, Complex& c2);注:operator 是關(guān)鍵字, operator + 就是函數(shù)名,可以描述為: 函數(shù)operator +重載了運算符+整數(shù)加可以想象為調(diào)用如下函數(shù)int operator + (int a,int b) return a+b; cpp view plain copy 01.#include <iostream> 02
24、.using namespace std; 03.class Complex 04. 05. public: 06. Complex()real=0;imag=0; 07. Complex(double r, double r)real=r;imag=i; 08. Complex operator + (Complex &c2); /聲明重載運算符的函數(shù) 09. void display(); 10. private: 11. double rea; 12. double imag; 13.; 14.Complex Complex:operator + (Complex &c2
25、) /定義重載運算符的函數(shù) 15. 16. Complex c; 17. c.real = real + c2.real; 18. c.imag = imag + c2.imag; 19. return c; 20. 21.void Complex:display() 22. 23. cout<<real<<imag; 24. 25.int main() 26. 27. Complex c1(3,4), c2(5,-10),c3; 28. c3 = c1 +c2; /運算符+ 用于復(fù)數(shù)運算 29. cout<<"c1="c1.displa
26、y; 30. cout<<"c2="c2.display; 31. cout<<"c1+c2="c3.display; 32. return 0; 33. 34.運行結(jié)果: 35.c1 = (3,4i) 36.c2 = (5,-10i) 37.c1+c2 = (8,-6i) 重載運算符的規(guī)則 (1)C+不允許用戶自己定義新的運算符,只能對已有的C+運算符進行重載。 (2)C+允許重載絕大部分的運算符 (3)重載不能改變運算符運算對象的個數(shù) (4)重載不能改變運算符的優(yōu)先級別 (5)重載不能改變運算符的結(jié)合性 (6)重載運算符的函數(shù)
27、不能有默認(rèn)的參數(shù) (7)重載的運算符必須和用戶定義的自定義類型的對象一起使用,其參數(shù)至少一個是類對象(或類對象的引用)。也就是說參數(shù)不能全部是C+的標(biāo)準(zhǔn)類型,以防止用戶修改用于標(biāo)準(zhǔn)類型數(shù)據(jù)的運算符的性質(zhì)。(8)用于類對象的運算符一般必須重載,但有兩個例外,運算符“=”和“&”不必用戶重載(9)應(yīng)當(dāng)使重載運算符的功能類似于該運算符作用于標(biāo)準(zhǔn)類型數(shù)據(jù)時所實現(xiàn)的功能,否則不易使人理解程序(10)運算符重載函數(shù)可以是類的成員函數(shù),也可以是類的友元函數(shù),還是計費成員函數(shù)也非友元函數(shù)的普通函數(shù)?;顒涌尚行苑治鲆弧?必要性分析應(yīng)團組織的要求,在我校大學(xué)生中以各班為單位進行實踐主題教育活動,我班經(jīng)過班
28、委商議和全班同學(xué)的同意,決定以環(huán)境保護為主題,進行主題教育活動。此次活動旨在通過生動活潑的活動中,增強同學(xué)們的環(huán)境保護意識,同時也培養(yǎng)廣大團員的團學(xué)精神。這次的活動既符合學(xué)校要求,也順應(yīng)了全球環(huán)境惡化需要人類更加愛護環(huán)境的趨勢和“低碳”潮流。作為當(dāng)代大學(xué)生,以及幾年后就要走向社會的工作者,我們有必要增強自己的環(huán)境保護意識,以及加強我們對大自然的了解,以便于我們能真正做到可持續(xù)發(fā)展,為我們的子孫后代謀取更多的福利。了解大自然,愛護大自然,保護大自然是我們每個人應(yīng)該做的,這不僅是為了大自然,更是為了我們?nèi)祟悾晕覀円e極參與環(huán)保主題教育,也通過活動在提升自己的同時,影響周圍其他的人,讓更多的人意識到保護環(huán)境的重要性,這樣我們才能更好的生活在地球上。二、 可行性分析1內(nèi)容 本次班級主題教育活動將由全班同學(xué)集體參加,在各自宿舍內(nèi)種植花草,并積極記錄花草的成長過程,在活動末期進行成果展覽和評比?;顒觾?nèi)容切合環(huán)保綠色的主題,符合目前正在大力推行的低碳環(huán)保理念。同學(xué)們在學(xué)習(xí)之余種植花草,不僅可以放松一下緊繃的神經(jīng),還能夠通過見證花草的成長從中體會到生命的可貴。綠色植物不僅能夠美化居
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 企業(yè)規(guī)范食堂管理制度
- 老師上下班安全制度規(guī)范
- 高校醫(yī)務(wù)室責(zé)任制度規(guī)范
- 紡織品倉庫保管制度規(guī)范
- 兒科值班急救制度規(guī)范
- 購物卡辦理折扣規(guī)范制度
- 醫(yī)院照片陪護制度規(guī)范
- 學(xué)校公文用字規(guī)范制度
- 維修服務(wù)單制度規(guī)范要求
- 外賣團餐配送制度規(guī)范
- 急性胰腺炎護理查房課件ppt
- 初三數(shù)學(xué)期末試卷分析及中考復(fù)習(xí)建議課件
- GB/T 4074.8-2009繞組線試驗方法第8部分:測定漆包繞組線溫度指數(shù)的試驗方法快速法
- GB/T 40222-2021智能水電廠技術(shù)導(dǎo)則
- 第十章-孤獨癥及其遺傳學(xué)研究課件
- 人教版四年級上冊語文期末試卷(完美版)
- 防空警報系統(tǒng)設(shè)計方案
- 酒店管理用水 酒店廚房定額用水及排水量計算表分析
- 22種常見環(huán)境違法行為筆錄調(diào)查詢問筆錄及現(xiàn)場筆錄模板(修改版)
- 吉林大學(xué)發(fā)動機原理講義
- 老年大學(xué)規(guī)章制度管理辦法匯編
評論
0/150
提交評論