2023年C++知識點整理_第1頁
2023年C++知識點整理_第2頁
2023年C++知識點整理_第3頁
2023年C++知識點整理_第4頁
2023年C++知識點整理_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

C++前5章知識點總結(jié)簡樸的輸入與輸出第一個c++程序Cout流插入運算符<<,cin流提取運算符>>,endl操縱算子注釋用//,””包含的頭文獻會先到庫中尋找,若找不到則到本地查找。<>則只會到庫中查找。最新編譯器支持標(biāo)準(zhǔn)的c99<iostream>。cout<<a;原型為ostream&<<(ostream&cout,類型a);第一個參數(shù)和返回值都是引用類型的。Cin同理。兩個整數(shù)相加<<可以看作是函數(shù),事實上是一個運算符重載(第六章涉及)操縱算子endl與字符’\n’的比較操縱算子可以使用在輸入或輸出表達(dá)式中,可改變流狀態(tài)。Endl作用①換行②刷新流緩沖區(qū)。優(yōu)點:在程序未執(zhí)行完前就可以獲得信息使用cin和’>>’輸入數(shù)據(jù)輸入對象cin和流提取對象輸入數(shù)據(jù)容易犯得錯誤輸入數(shù)據(jù)與接受數(shù)據(jù)類型不匹配。定義類型忽略輸入字符串時空格的解決。(空格以后所有失效)Hex表達(dá)十六進制。習(xí)題11.1#include<iostream>usingstd::cin;usingstd::cout;usingstd::endl;intmain(void){ intnNum;?doubledNum;?charcNum;?cout<<"Inputdataint,double,charbyorder"<<endl; while((cin>>nNum>>dNum>>cNum)!=NULL) //cin返回值本來是basic_istream&類型的 //打開頭文獻<IOS.H>,找到ios的定義,其中有這么一條語句,類型轉(zhuǎn)換函數(shù)的定義: //operatorvoid*()const{if(state&(badbit|failbit))return0;return(void*)this;} //所以表達(dá)式為了匹配bool類型將自動轉(zhuǎn)換為void*類型。 //假如讀入時發(fā)生錯誤返回0,否則返回cin的地址。 {??cout<<"outputdat(yī)a:"<<endl;??cout<<nNum<<dNum<<cNum<<endl; } cout<<"WrongInput!"<<endl;?return0;}1.2#include<iostream>usingstd::cin;usingstd::cout;usingstd::endl;voidf(intn);intmain(void){ intnNum; cout<<"Inputanumber(int)ifwrongexit!"<<endl;?while(cin>>nNum!=NULL) ?f(nNum);?cout<<"WrongInput!"<<endl;?return0;}voidf(intn){?if(n%2)??cout<<"it'sodd!"<<endl; else??cout<<"it'seven!"<<endl;}1.3#include<iostream>usingstd::cin;usingstd::cout;usingstd::endl;voidf();intmain(void){?f(); return0;}voidf(){?charcCh;?cout<<"Inputaletter(char):"<<endl; while(cin>>cCh!=NULL) { ?if(cCh>='a'&&cCh<='z')???cout<<"it'sasmallletter!"<<endl; ?elseif(cCh>='A'&&cCh<='Z')???cout<<"it'sacapitalletter!"<<endl; ?elseif(cCh>='0'&&cCh<='9')???cout<<"it'sanumber!"<<endl; ?else ?cout<<"othersletter!"<<endl;?} cout<<"WrongInput!"<<endl;//比如輸入了F6}C語言重點知識所有指針變量在32位機上都占4字節(jié)。Intm=9;Charc[sizeofm];//對的,sizeof編譯時求值。輸入數(shù)組顯示時可以cout<<”a[“<<i<<”]:”<<a[i]<<endl;數(shù)組名不能做左值a[1,0]等價于a[0]a[i][j]與*(*(a+i)+j)等價因素:*(a+i)=a[i]=>*(*(a+i)+j)=*(a[i]+j),a[i]是二維數(shù)組a當(dāng)作是一維數(shù)組時的第i個元素,表達(dá)一個一維數(shù)組的首地址,所以*(a[i]+j)=(a[i])[j]可寫成a[i][j].生命周期:全局變量直到整個程序完全執(zhí)行完才會被釋放。作用域為全局所有。靜態(tài)變量只能初始化一次,一般的都會默認(rèn)為auto動態(tài)的,在其作用域內(nèi)有效,棧上分派的變量會由于作用域的結(jié)束而被釋放掉內(nèi)存。而靜態(tài)的不會。但靜態(tài)作用域是局部的。函數(shù)指針指向某個函數(shù)時,函數(shù)指針類型必須與函數(shù)類型完全相應(yīng),(返回值類型和參數(shù)列表要相同)作用:函數(shù)的通用性和程序的可擴展性。遞歸條件:擬定函數(shù)原型,明確函數(shù)功能。為遞歸函數(shù)找一個或多個非遞歸出口。找到出口的遞推式。將函數(shù)遞歸使用在遞推式中。內(nèi)存分派問題。靜態(tài)分派為棧區(qū),動態(tài)分派為堆區(qū)。棧比動態(tài)分派快。返回棧內(nèi)存錯誤:返回的指針指向動態(tài)棧內(nèi)存數(shù)組(函數(shù)調(diào)用完釋放了數(shù)組內(nèi)信息)解決棧內(nèi)存錯誤:返回的指針指向靜態(tài)棧內(nèi)存數(shù)組(函數(shù)調(diào)用完仍然保存)靜態(tài)區(qū)數(shù)據(jù)不可修改。注意內(nèi)存泄露(動態(tài)存儲區(qū)指針被修改或釋放)問題和迷途指針(釋放不指向動態(tài)存儲區(qū)指針)問題。桶排序問題就是基數(shù)排序問題的特例。(詳見數(shù)據(jù)結(jié)構(gòu))習(xí)題Inta=0,b=1;&a=&b; ?//無法做左值Void*p=&a;*p=b; ?//int類型無法強制轉(zhuǎn)化為void*類型數(shù)組長度為4,初始值為1,2,3,4,’\0’數(shù)組長度為1,初始值為0,’\0’數(shù)組長度為8,初始值為hello’\0’’\0’’\0’沒有明白題意。望見諒。#include<iostream>#include<ctime>#include<cstring>usingstd::cin;usingstd::cout;usingstd::endl;#defineMaxsize10intMin(intnArr[],intnLen);intmain(void){srand(time(NULL));intnArr[Maxsize]={0};for(inti=0;i<Maxsize;i++){cout<<"randomnumbers["<<i+1<<"]"<<endl<<(nArr[i]=rand()%1000)<<endl;}cout<<"Minis"<<Min(nA(yù)rr,Max

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論