版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
CompanyDocumentnumber:WUUT-WUUY-WBBGB-BWYTT-1982GT
編程入門基礎(chǔ)知識總結(jié)
基本知識
程序=算法+數(shù)據(jù)結(jié)構(gòu),算法是對操作的描述,數(shù)據(jù)結(jié)構(gòu)是對數(shù)據(jù)的描述。
偽代碼:pseudocode
程序一般包括:
(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ù)、類、對象、類模版)都是在std命名
空間定義的
A的ASCII碼值65a的97
1.數(shù)據(jù)類型
基本類型:整型、浮點型、字符型、布爾型
構(gòu)造類型:枚舉、數(shù)組、結(jié)構(gòu)體類型(struct)、公用體(union),類類型
指針類型
引用類型
空類型:null
int4unsignedint4shortint2unsignedshortint2longint
4unsignedlongint4
char1uchar1
float4double8longdouble8
無符號:不用保存符號位,故比有符號多了一位
有符號:數(shù)值用補碼存放(無論正負),最高位為符號位
VC中,longdouble與double字節(jié)數(shù)相同,故longdouble是無用的
GCC中,longdouble則有12個字節(jié)
無負值的量可以定義為unsignedint,如年齡、學(xué)號等,以增大存儲范圍。
shortint,longint,unsignedint這些類型后面的int可以省略
整型表示:
十進制,后面加L或]
八進制,前面加0
十六進制,前面加Ox
浮點數(shù)表示:
默認為雙精度型double
后面加f或F則為單精度float
后面加1或L則為長精度型longdouble
指數(shù)形式
數(shù)符數(shù)字部分指數(shù)部分
a=a=a=a=3140e-l
浮點數(shù),不管是用小數(shù)形式還是指數(shù)形式表示,在內(nèi)存中都是以指數(shù)形式表示
的,且數(shù)字部分必須小于1
如在內(nèi)存中表示為+.3141593,數(shù)字部分為.314159,是小于1的
字符型
字符型在內(nèi)存中存儲的是ASCH碼,也是整型,故而可以把字符型賦給整型
字符串后面,編譯系統(tǒng)會加個'\0作為結(jié)束符
符號常量
用符號代表一個常量,如#definePI
在編譯時,系統(tǒng)會把符號常量替換成具體的值
2.變量
變量:程序運行期間,值可變的量
變量名:代表內(nèi)存中的一個存儲單元,在編譯連接時由系統(tǒng)給每一個變量分配
一個地址
標(biāo)識符:標(biāo)識實體名字的有效字符序列,字母、數(shù)字、下劃線
常變量:定義變量時加上const,運行期間值不可變,也即只讀變量
區(qū)別#define定義的符號常量與const定義的常變量
符號常量只是用一個符號代表一個常量,在編譯時把所有符號常量替換為指定
的值,它沒有類型,在內(nèi)存中不存在以符號常量命名的存儲單元
常變量具有變量的特征,具有類型,在內(nèi)存中有以它命名的存儲單元,與一般
變量不同的是,常變量代表的存儲單元值不可變。
強定義的好處
1.保證變量名使用的正確,不正確會在編譯時報錯
2.每個變量指定為一確定類型,在編譯時就能為其分配存儲單元
3.編譯時即可檢查變量進行的運算是否合法。
3.運算符
二進制位運算
&二進制按位與
I二進制按位或
人按位異或
?左移位
?右移位
++-自加自減運算符
++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+l=-2
a=-i++:a結(jié)果為-3,先賦值,再自加;
5-i++=答案2待測試
1=1』=2,則a=i+++j答案:3因為相當(dāng)于a=(i++)+j;
i=l,j=2jija=i+(++j)答案:4
賦值運算符=的優(yōu)先級小于++-運算符
示例:
intarr[]={6,7,8,9,10);
sint*ptr=arr;
*(ptr++)+=123;
printf("%d,%d",*ptr,*(++ptr));
解:
*(ptr++)+=123;相當(dāng)于*ptr+=123;*ptr++;故arr[0]=129;ptr指向arrfl]
printf函數(shù)從右向左壓棧,運算順序:++ptr;輸出結(jié)果:88
cout也是自右向左壓棧。
逗號運算符
又稱順序求值運算符
a=3*4,a*5則a=答案12注意逗號運算符優(yōu)先級最低。注:整個逗號表達式
的值為60(a=3*4=12,12*5=60)
x=(a=3,6*3)則x=18
x=a=3,6*a則x=3
3.內(nèi)存存儲
浮點數(shù)在內(nèi)存里和整數(shù)存儲方式不同
floata=;
cout?(int)a==(int&a);
(int&a)相當(dāng)于把該浮點數(shù)地址開始的sizeof(int)個字節(jié)當(dāng)成int型數(shù)據(jù)輸出,其
值并不為1
(int)a顯示轉(zhuǎn)換等于1
4.類型轉(zhuǎn)換
轉(zhuǎn)換本質(zhì):按存儲單元中的存儲形式直接傳送
(1)浮點型賦給整型,舍棄小數(shù)部分
(2)double型賦給float,防止溢出錯誤
(3)int,short,long賦給char,原封不動取低八位
(4)signed賦給unsigned,符號位照搬。負數(shù)以補碼形式存放,-1賦給
unsignedint,結(jié)果為65536.整數(shù)不會變,除非兩個長度不同(int,long)發(fā)生
截斷
++輸入輸出
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++本身定義的,而是編譯系統(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ù)部分)
cout?a;數(shù)與模版
函數(shù)原型:不同具體形參的函數(shù)聲明
如:floatadd(float,float)
主要作用:根據(jù)函數(shù)原型,在程序編譯階段對調(diào)用函數(shù)的合法性進行全面檢
查。
函數(shù)重載:同一函數(shù)名定義的多個函數(shù),這些函數(shù)的參數(shù)個數(shù),參數(shù)類型,參
數(shù)順序至少有一項不同,一個函數(shù)不能既是重載函數(shù),又是帶默認參數(shù)的函
數(shù)。
函數(shù)模版:適用于函數(shù)個數(shù)相同,函數(shù)體相同,而只有類型不同的情況
[cpp]viewplaincopy
Ol.#include<iostream>
namespacestd;
<typenameT>
06.if(b>a)a=b;
07.if(c>a)a=c;
08.returna;
09.}
main()
H.{
12.inta=l,b=2,c=3;
13.cout?T(a,b,c);
14.floatd=,e=,f=;
15.cout?T(d,e,f);
16.}
變量作用域:變量有效范圍,有四種:
文件作用域filescope函數(shù)作用域functionscope
塊作用域blockscope函數(shù)原型作用域functionprototypescope
遞歸函數(shù):函數(shù)體中,直接或間接調(diào)用函數(shù)本身的函數(shù)。
變量的存儲類別:外部、局部(相對于函數(shù)而言)
全局變量(也即外部變量)
靜態(tài)局部變量(static)
自動變量(不加static的局部變量)
寄存器變量(register)存放在CPU中,而非內(nèi)存中,這樣在使用時就省去了
從內(nèi)存中載入寄存器的過程。但只是建議性的,優(yōu)化編譯系統(tǒng)自動識別使用頻
繁的變量,從而自動將變量放入寄存器中。
extern聲明的外部變量
即提前引用申明,表示該變量是將在下面定義的全局變量或在其它文件中定義
(本文件中不用extern,引用該變量的外部文件用extern進行聲明)
static聲明的靜態(tài)外部變量
只能被本文件使用,而不能被外部文件使用的全局變量,這樣不同文件中的全
局變量不會相互干擾,為程序模塊化、通用化提供方便。
注:全局變量也是靜態(tài)存儲的。
內(nèi)部函數(shù)與外部函數(shù)
內(nèi)部函數(shù):static聲明,文件內(nèi)使用
外部函數(shù):另一個文件里extern聲明,表示是其它文件的函數(shù),extern可以省
略
宏定義
#definePI定義符號常量
#defineArea(a,b)a*b/值會改變
(
03.inti=5,j=6;
04.swap(i,j)
05.}
swap(int&a,int&b)
08.inttemp;
09.temp=a;
10.a=b;
11.b=temp;
12.)
傳遞變量地址:形參是指針變量,實參是變量地址,這種虛實結(jié)合的方法仍然
是“值傳遞”方式,只是實參的值是變量地址而已。
[cpp]viewplaincopy
01.
04.inti=5,j=6;
05.swap(&i,&j)
06.}
swap(int*pl,int*p2)
09.inttemp;
10.temp=*pl;
11.*pl=*p2;
12.*p2=temp;
13.)
結(jié)構(gòu)體變量struct
作函數(shù)參數(shù)時有三種形式
(1)用結(jié)構(gòu)體變量名作形參
這時形參要開辟內(nèi)存單元,實參中全部內(nèi)容通過值傳遞方式一一傳遞給形參,
時空開銷大,效率低
(2)用指向結(jié)構(gòu)體變量的指針作形參,只有四個字節(jié)
voidprinted(student*p)
cout?p->num;
}
(3)用結(jié)構(gòu)體變量的引用變量作形參
Studentstu;
print(stu);
voidprint(Student&stu)
(
cout<;
}
newdelete動態(tài)內(nèi)存分配
new類型(初值),返回地址,分配失敗返回NULL
float*f=newfloat;
int*i=newint(6);
int*k=newint[5][4];
typedef聲明新類型
typedefintINTEGER,相當(dāng)于為int起了個別名,下面程序中就可以直接用
INTEGER作int用了
主要為了方便系統(tǒng)移植,如longint在VC中4個字節(jié),在GCC中占8個字
節(jié),直接用int的話可能會溢出,用INTEGER就不用擔(dān)心了,只要把ypedefint
INTEGER聲明語句一改就行
運算符重載
方法是定義一個重載運算符的函數(shù),在需要執(zhí)行被重載的運算符時,系統(tǒng)就自
動調(diào)用該函數(shù),以實現(xiàn)響應(yīng)運算。即運算符重載是通過定義函數(shù)實現(xiàn)的,運算
符重載實際上是函數(shù)重載。
格式:
函數(shù)類型operator運算符名稱(形參表列)
{對運算符的重載處理}
例如:將+用于Complex類(復(fù)數(shù))的加法運算,函數(shù)原型如下:
Complexoperator+(Complex&cl,Complex&c2);
注:operator是關(guān)鍵字,operator+就是函數(shù)名,可以描述為:函數(shù)operator+
重載了運算符+
整數(shù)加可以想象為調(diào)用如下函數(shù)
intoperator+(inta,intb)
{returna+b;}
[cpp]viewplaincopy
Ol.#include<iostream>
namespacestd;
Complex
04.(
05.public:
06.Complex(){real=0;imag=0;}
07.Complex(doubler,doubler){real=r;imag=i;}
08.Complexoperator+(Complex&c2);voiddisplayO;
10.private:
11.doublerea;
12.doubleimag;
13.);
Complex::operator+(Complex&c2)
16.Complexc;
17.=real+;
18.=imag+;
19.returnc;
20.}
Compl
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 中職學(xué)校開學(xué)典禮教導(dǎo)主任精彩講話稿(5篇)
- 探究天然植物制備酸堿指示劑及其pH范圍
- 慢性支氣管炎臨床路徑
- 學(xué)校教職工代表大會規(guī)定
- 航空航天用1100MPa MJ螺紋花鍵頭螺栓 征求意見稿
- 永年區(qū)八年級上學(xué)期語文期末考試卷
- 三校聯(lián)考九年級上學(xué)期語文期中質(zhì)量檢測卷
- 多校九年級上學(xué)期語文第一次月考試卷
- 2024年聯(lián)考中考語文二模試卷
- 一年級數(shù)學(xué)(上)計算題專項練習(xí)匯編
- 2024年人事行政行業(yè)培訓(xùn)資料
- 2024年云南省第一次高中畢業(yè)生復(fù)習(xí)統(tǒng)一檢測(一模)文科綜合試卷(含官方答案)
- 《認識隸書(一)》名師課件
- 食堂醇基燃料應(yīng)急預(yù)案
- 結(jié)構(gòu)設(shè)計通用規(guī)范(住建部2023年頒布)
- 2023學(xué)年完整公開課版時行程問題
- 性格測試98題-最符合和最不符合答案
- 交通運輸系統(tǒng)安全生產(chǎn)治本攻堅三年行動方案
- 《平衡計分卡》課件
- 超聲科發(fā)展規(guī)劃方案
- 文化與藝術(shù)行業(yè)2024年人力資源管理與制度優(yōu)化
評論
0/150
提交評論