C++復(fù)習(xí)(夜肝C++,綜合樓刷夜)

盡管教主說(shuō)除了那些成績(jī)十分不像話的矛物,經(jīng)過(guò)他的處理基本都能及格茫死。但是我這種上課從來(lái)不聽(tīng)的壞孩子還是很方的有木有!(碼字好累)

一履羞、C++的初步認(rèn)識(shí)

1峦萎、對(duì)C語(yǔ)言的增強(qiáng)體現(xiàn)在兩個(gè)方面:

1)在原來(lái)基于過(guò)程機(jī)制的基礎(chǔ)上,對(duì)C語(yǔ)言的功能做了不少補(bǔ)充忆首。
2)增加了面向?qū)ο蟮臋C(jī)制爱榔。

2、一個(gè)簡(jiǎn)單的程序

<code>#include<iostream>
using namespace std;
int main()
{
int a,b;
cin>>a>>b;
cout<<"a+b = "<< a+b<< endl;
return 0;
}</code>

”#include<iostream>“不是C++的語(yǔ)句糙及,而是C++的一個(gè)預(yù)處理指令详幽,行的末尾沒(méi)有分號(hào)。
using namespace std; 的意思是”使用命名空間std“。
cin為輸入流對(duì)象唇聘,“>>”為提取運(yùn)算符版姑。
cout為輸出流對(duì)象,“<<”為插入運(yùn)算符雳灾,語(yǔ)句以分號(hào)結(jié)束漠酿。
endl表示本行結(jié)束。

3谎亩、關(guān)于注釋

注釋是給人看的,不是給機(jī)器看的宇姚。
注釋可以用”//“來(lái)注釋一行匈庭,作簡(jiǎn)短注釋。
也可以以“/+星號(hào)”開(kāi)始“星號(hào)+/”結(jié)束來(lái)注釋幾行浑劳,作長(zhǎng)注釋阱持。
給函數(shù)和程序?qū)懽⑨屖且粋€(gè)非常好的習(xí)慣。
ps:課程設(shè)計(jì)由于好多函數(shù)沒(méi)有寫注釋魔熏,第二天再看的時(shí)候一臉懵逼TvT衷咽。

4、C++程序的構(gòu)成和書寫方式

1)一個(gè)C++程序可以由一個(gè)或多個(gè)程序單位構(gòu)成蒜绽。
2)在一個(gè)程序單位中镶骗,包含以下三個(gè)部分
①預(yù)處理指令
②全局聲明部分
③函數(shù),一個(gè)程序有且只能有一個(gè)主函數(shù)躲雅。
3)一個(gè)函數(shù)有兩部分構(gòu)成
①函數(shù)首部鼎姊,包括函數(shù)名、函數(shù)類型相赁、函數(shù)屬性相寇、函數(shù)參數(shù)名、參數(shù)類型钮科。
e.g:<code>int max(int x,int y)</code>
②函數(shù)體:一般包括局部聲明部分和執(zhí)行部分
4)語(yǔ)句也包括兩類:
①聲明語(yǔ)句:不引起實(shí)際的操作唤衫,屬于非執(zhí)行語(yǔ)句。
②執(zhí)行語(yǔ)句:用來(lái)實(shí)現(xiàn)用戶的操作绵脯。
5)一個(gè)C++程序總是從main函數(shù)開(kāi)始執(zhí)行的佳励。
6)類(class)是C++新增加的重要數(shù)據(jù)類型(面向?qū)ο螅?br> p.s:寫課程設(shè)計(jì)的時(shí)候由于主函數(shù)少了對(duì)象而找了半天的BUG。沒(méi)有對(duì)象桨嫁,活該單身植兰。

二、數(shù)據(jù)的存儲(chǔ)璃吧、表示形式和基本運(yùn)算

1楣导、C++的數(shù)據(jù)類型

|數(shù)據(jù)類型|||||
| ------------- |:-------------:| -----:|----|
| 基本類型| 整型【長(zhǎng)整型:long int】【短整型:short int】【整型:int】| 字符型【char】 |浮點(diǎn)型【單精度型:float】【雙精度型:double】【長(zhǎng)雙精度型:long double】|布爾型【bool】|
| 派生類型| 指針類型【*】| 枚舉類型【enum】|數(shù)組類型【[]】|結(jié)構(gòu)體類型【struct】共用體類型【union】類類型【class】|
|空類型【void】||||||
p.s:markdown的表格還挺智能。畜挨。筒繁。噩凹。如果能加思維導(dǎo)圖就更好了。

2毡咏、數(shù)據(jù)類型的范圍【★★★★★】

|數(shù)據(jù)類型的數(shù)值范圍|||
|-----------|:----------------:|-------:|-------------|
|類型|類型標(biāo)識(shí)符|字節(jié)數(shù)【★】|
|整型【★】|【signed】int|4|
|無(wú)符號(hào)整數(shù)|【unsigned】int|4|
|短整型|【short】int|2|
|無(wú)符號(hào)短整型|【unsign short】int|2|
|長(zhǎng)整型【★】|【long】int|4|
|無(wú)符號(hào)長(zhǎng)整型|【unsigned long】int|4|
|字符型|【signed】char|1|
|無(wú)符號(hào)字符型|【unsigned】char|1|
|單精度型【★】|float|4|
|雙精度型【★】|double|8|
|長(zhǎng)雙精度型【★】|long double|8|
p.s:刷oj的時(shí)候測(cè)試大數(shù)據(jù)會(huì)出現(xiàn)很多稀奇古怪的結(jié)果驮宴,但是程序的邏輯正確,oj卻提示答案錯(cuò)誤呕缭,就是因?yàn)槭褂胕nt類型發(fā)生了溢出堵泽。這時(shí)候往往使用unsigned long或者unsigned long long。

3恢总、常量

1)什么是常量:常量分為兩大類迎罗,數(shù)值型常量和字符型常量。
2)數(shù)值常量:
①常量的類型:常量無(wú)unsigned 型片仿。但一個(gè)非負(fù)整數(shù)可以賦值給unsigned型變量纹安。前提是不會(huì)溢出。
②一個(gè)整型常量可以用三種方法表示:
Ⅰ十進(jìn)制整數(shù):如1357砂豌,-432.0等厢岂。在一個(gè)整數(shù)常量后面加一個(gè)字母l或者L則認(rèn)為是long int 型變量
Ⅱ八進(jìn)制整數(shù):在常數(shù)的開(kāi)頭加一個(gè)0,表示八進(jìn)制整數(shù)如020為(20)8阳距,相當(dāng)于十進(jìn)制的16.
Ⅲ十六進(jìn)制整數(shù):在常數(shù)的開(kāi)頭加一個(gè)數(shù)字0和一個(gè)X或者x塔粒。如0X20表示十六禁止的20,即十進(jìn)制的32.
2)浮點(diǎn)數(shù)的表示法
一個(gè)浮點(diǎn)數(shù)可以用兩種不同的形式表示:
①十進(jìn)制小數(shù)形式:由整數(shù)和小數(shù)部分組成娄涩,可以省略其中之一但是不能都省略(78. 窗怒, .06 , .0)蓄拣。C++在編譯時(shí)將其作為雙精度常量處理扬虚,占八個(gè)字節(jié)。如果數(shù)后面加上F或f則按單精度類型處理如43F球恤,43f辜昵。如果加字母L或l則按長(zhǎng)雙精度處理占12個(gè)字節(jié)【vs中占8字節(jié)】
②指數(shù)形式:如3.14159可寫成0.314159×101,3.14159×100,31.4159×10^-1咽斧。在程序中表示為0.314159e1堪置,3.14159e0,31.4159e-1张惹。e后的數(shù)表示以10為底的多少次冪舀锨。
p.s:這就是浮點(diǎn)的由來(lái)【小數(shù)點(diǎn)浮動(dòng)位置不固定】
4)字符常量
①普通的字符常量如:'a','@','#'等
字符常量只能包括一個(gè)字符'ab'不合法
字符常量區(qū)分大小寫
cout<<'a';的結(jié)果是a而不是'a';
②轉(zhuǎn)義字符常量【★★★】

字符形式 含義 ASCII碼
\a 響鈴 7
\n 換行宛逗,將當(dāng)前位置移到下一行開(kāi)頭 10
\t 水平制表(跳到下一個(gè)tab位置 9
\b 退格坎匿,將當(dāng)前位置移到前一列 8
\r 回車,將當(dāng)前位置移到本行開(kāi)頭 13
\f 換頁(yè),將當(dāng)前位置移到下頁(yè)開(kāi)頭 12
\v 豎向跳格 8
|反斜杠字符”\“ 92
' 單引號(hào)字符 39
" 雙引號(hào)字符 34
\0 空字符 0
\ddd 1-3位八進(jìn)制數(shù)所代表的字符
\xhh 1-2位十六進(jìn)制數(shù)所代表的字符 填點(diǎn)東西避免空虛

5)字符類型在內(nèi)存中的存儲(chǔ)形式和使用方法
字符在內(nèi)存中以ASCII碼值存儲(chǔ)替蔬。也可以對(duì)字符數(shù)據(jù)進(jìn)行算術(shù)運(yùn)算告私。
e.g:
<code>#include<iostream>
using namespace std;
int main()
{
int i,j;
i='A';
j='B';
cout<< i << j;
return 0;
}
output:65 66
</code>
輸出的結(jié)果為ASCII碼值。
字符數(shù)據(jù)只占一個(gè)字節(jié)承桥,只能存放0~255范圍內(nèi)的整數(shù)驻粟。
5)字符串常量
用雙撇號(hào)括起來(lái),如"FK U"
【★】"F
K U" 占7個(gè)字節(jié)分別為F,,K,空格凶异,”\0“蜀撑;
因?yàn)榫幾g系統(tǒng)會(huì)在字符串的末尾加上‘\0’作為結(jié)束的標(biāo)志。
辨析'a'和"a"
<code>
char c//定義一個(gè)字符變量
c='a';//正確
c="a"://錯(cuò)誤唠帝,發(fā)生溢出屯掖,c只能容納一個(gè)字符。
</code>
6)符號(hào)常量
e.g:
<code>#include<iostream>
using namespace std;
<code>#define PRICE 30//注意這不是語(yǔ)句襟衰,末尾無(wú)分號(hào)
int main()
{
int num,total;
num=10;
total=num*PRICE;
cout<<"total= "<< total<< endl;
return 0;
}
</code></code>
預(yù)處理指令表示的是替換,符號(hào)常量雖然有名字但是并不是變量粪摘,如果使用賦值語(yǔ)句PRICE=30是錯(cuò)誤的瀑晒。
好處就是:含義清楚,一次修改能替換所有值徘意。

4苔悦、變量

1)注意區(qū)分變量名和變量值,如a=3椎咧;則變量名為a玖详,值為3.
2)變量名的規(guī)則:
C++中區(qū)分大小寫,變量名中不能出現(xiàn)和關(guān)鍵字勤讽、系統(tǒng)函數(shù)名和類名相同蟋座。
命名方法有很多種駝峰,匈牙利命名法等等脚牍。
p.s:變量的命名也是十分重要向臀,經(jīng)常睡了一覺(jué)之后會(huì)看不懂自己的命名=v=。
3)定義變量
定義變量的一般形式為:
數(shù)據(jù)類型 變量名表列(就是一個(gè)或者多個(gè)變量名)
例如 int I,love,u;
為三個(gè)整型變量I诸狭,love和u券膀。
4)C++這么規(guī)定的好處
①如果定義中為int student;
但是在后面執(zhí)行語(yǔ)句中錯(cuò)寫為 sutdent=30驯遇;
編譯器會(huì)以sutdent沒(méi)有定義報(bào)錯(cuò)芹彬。
②方便編譯器分配內(nèi)存。
③便于在便宜時(shí)檢查運(yùn)算是否合法叉庐。
5)對(duì)變量賦初值(變量的初始化)
可以在定義時(shí)便初始化 int a=20舒帮;
也可以先定義再初始化 int a;
a=20;
6)常變量
定義變量時(shí)加上關(guān)鍵字const会前,則變量值在運(yùn)行期間不能改變好乐。
const int a=3;
【常變量不能被賦值】
const int a瓦宜;
a=20蔚万;
錯(cuò)誤
常變量又稱只讀變量。
7)C++的運(yùn)算符【★】
①算術(shù)運(yùn)算符
"+"" -" "星號(hào)" "/" "%(整除求余) “++”(自加) “--”(自減)
②關(guān)系運(yùn)算符
“<” “==”(等于) “>=”(大于或等于) “<=”(小于或等于) “临庇!=”(不等于)
③邏輯運(yùn)算符
”&&“(邏輯與【且】) “||”(邏輯或) ”反璃!“(邏輯非)
④位運(yùn)算符
“<<”(按位左移) “>>"(按位右移) "&"(按位與) "|"(按位或) "^"(按位異或) "-"(按位取反)
p.s:左移右移可看為乘二除二,一定不要把^當(dāng)成次冪來(lái)用
⑤賦值運(yùn)算符=
⑥條件運(yùn)算符【★】假夺? : (a>b)? a=0:b=0; a是否大于b淮蜈,若為真則a=0,否則的話b=0
⑦指針運(yùn)算符【★】<code> * </code>
⑧逗號(hào)運(yùn)算符【★】已卷,
⑨引用運(yùn)算符和地址運(yùn)算符【★】&
⑩求字節(jié)數(shù)運(yùn)算符【★★】sizeof
?強(qiáng)制類型轉(zhuǎn)換符((類型)或類型())
?成員運(yùn)算符 .
?指向成員運(yùn)算符(->)
?下標(biāo)運(yùn)算符([])
?其他運(yùn)算符()
8)基本的算術(shù)運(yùn)算符
整數(shù)和整數(shù)相除的結(jié)果為整數(shù)部分
所以如果想得到浮點(diǎn)數(shù)應(yīng)該將整數(shù)寫作浮點(diǎn)形式如1->1.0;
如果基本運(yùn)算中有一個(gè)數(shù)據(jù)為float數(shù)據(jù)那么運(yùn)算結(jié)果為double型梧田,C++運(yùn)算時(shí)將所有float數(shù)據(jù)都作double類型處理。
9)算術(shù)表達(dá)式的優(yōu)先級(jí)和結(jié)合性
優(yōu)先級(jí)與小學(xué)數(shù)學(xué)課本優(yōu)先級(jí)類似侧蘸,結(jié)合性為左結(jié)合性裁眯。
10)不同類型數(shù)據(jù)之間的運(yùn)算
轉(zhuǎn)換成同一類型(最長(zhǎng)的那一個(gè))
11)自增自減運(yùn)算【★】
++i(在使用i之前先將i的值加一)
--i (在使用i之前先將i的值減一)
i++(使用i之后將i的值增加一)
i--(使用i之后將i的值減一)
12)類型強(qiáng)轉(zhuǎn)
(double)a
(int)(x+y)
(float)(5%3)
打字好累,不解釋了讳癌,能看懂的
13)賦值過(guò)程中的類型轉(zhuǎn)換
如 int a=7.13穿稳;
或 float a;
double b=7.13晌坤;
a=b逢艘;(在不發(fā)生溢出的前提下進(jìn)行強(qiáng)轉(zhuǎn))。
14)復(fù)合賦值運(yùn)算符
a+=3等價(jià)于a=a+3
x×=y+8等價(jià)于x=x×(y+8)
x%=3等價(jià)于x=x%3
C++可使用一下幾種復(fù)合運(yùn)算符
+= -= ×= /= %= <<= >>= &= ^= |=
15)賦值表達(dá)式
右賦給左骤菠,沒(méi)什么好說(shuō)的
16)逗號(hào)運(yùn)算符和逗號(hào)表達(dá)式【★】
表達(dá)式1它改,表達(dá)式2
逗號(hào)表達(dá)式的求解過(guò)程為:先求解表達(dá)式1,再求解表達(dá)式2娩怎,整個(gè)逗號(hào)表達(dá)式的值為表達(dá)式2的值搔课。
如:a=3×5,a×4截亦;結(jié)果為60(沒(méi)有什么異議)
如果再這里面混入復(fù)合賦值運(yùn)算符和自加自減運(yùn)算符就會(huì)有很多人麻爪了
p.s:不知道麻爪是哪里的方言爬泥,教主挺喜歡說(shuō)的,有知道的嗎崩瓤?

三袍啡、基于過(guò)程的程序設(shè)計(jì)

1、算法的表示

①自然語(yǔ)言②流程圖③偽代碼④計(jì)算機(jī)語(yǔ)言

2却桶、C++程序結(jié)構(gòu)和C++語(yǔ)句

雖然譚書寫的淺顯易懂但是重復(fù)的部分挺多的境输,這一部分和前面的重復(fù)蔗牡,唯一有用的部分就是定義了全局聲明。
變量的壽命就是在一對(duì)花括號(hào)之間嗅剖,全局變量的壽命是最長(zhǎng)的辩越,函數(shù)內(nèi)或者循環(huán)語(yǔ)句內(nèi)的局部變量壽命只在一對(duì)花括號(hào)之間。

3信粮、執(zhí)行語(yǔ)句

①if()else 條件選擇語(yǔ)句
②for()~ 循環(huán)語(yǔ)句
③while()~ 循環(huán)語(yǔ)句
④do~while()循環(huán)語(yǔ)句
⑤continue 結(jié)束本次循環(huán)語(yǔ)句
⑥break中止循環(huán)或者switc case語(yǔ)句
⑦switch多分枝選擇語(yǔ)句
⑧goto轉(zhuǎn)向語(yǔ)句
⑨return 從函數(shù)返回語(yǔ)句
上表中()表示判斷條件黔攒,~表示內(nèi)嵌語(yǔ)句
p.s:之前教主安利過(guò)goto之后,就看到國(guó)外大牛曾經(jīng)發(fā)表過(guò)goto有害論强缘,但是goto確實(shí)是一個(gè)很好用的東西督惰,配合條件選擇語(yǔ)句能減少很多代碼量(雖然是直接復(fù)制的)。

4旅掂、C++的輸入輸出

C++的輸入輸出是通過(guò)I/O庫(kù)中的輸入輸出函數(shù)實(shí)現(xiàn)的赏胚。
C++的輸入輸出是用“流”(stream)的方式來(lái)實(shí)現(xiàn)的。
鍵盤→“hello”→cin→>>(提取)→計(jì)算機(jī)指定的變量
“hello”→<<(插入)→cout→顯示器
cin和cout是流對(duì)象商虐,包含在stream中觉阅。
由此可見(jiàn),C++的輸入輸出是包含在庫(kù)函數(shù)中而if等C++本身提供的語(yǔ)句并不需要頭文件iostream的包含秘车。

5留拾、在標(biāo)準(zhǔn)輸入輸出中使用控制符

控制符 作用
dec 設(shè)置數(shù)值基數(shù)為10
hex 設(shè)置數(shù)值的基數(shù)為16
oct 設(shè)置數(shù)值的基數(shù)為8
setfill(c) 設(shè)置填充字符c,c可以是字符常量和字符變量
setprecision(n) 設(shè)置浮點(diǎn)數(shù)的精度為n位鲫尊。在以一般十進(jìn)制小數(shù)形式輸出時(shí),n代表有效數(shù)字沦偎,在以fixed(固定小數(shù)位數(shù))形式和scientific(指數(shù))形式輸出時(shí)疫向,n為小數(shù)位數(shù)
stw(n) 設(shè)置字段寬度為n位
setiosflags(ios::fixed) 設(shè)置浮點(diǎn)數(shù)以固定的小數(shù)位數(shù)顯示
setiosflags(ios::scientific) 設(shè)置浮點(diǎn)數(shù)以科學(xué)記數(shù)法顯示
setiosflags(ios::left) 輸出數(shù)據(jù)左對(duì)齊
setiosflags(ios::right) 輸出數(shù)據(jù)右對(duì)齊
setiosflags(ios::skipws) 忽略前導(dǎo)的空格
setiosflags(ios::uppercase) 數(shù)據(jù)以16進(jìn)制輸出時(shí)字母大寫表示
setiosflags(ios::lowercase) 數(shù)據(jù)以16進(jìn)制輸出時(shí)字母以小寫表示
setiosflags(ios::showpos) 輸出正數(shù)時(shí)給出“+”號(hào)

p.s:如果要求保留小數(shù)時(shí)不自動(dòng)進(jìn)位,需要化成整數(shù)再保留有效數(shù)字豪嚎。
使用輸出控制符搔驼,需要頭文件iomanip。

6侈询、使用getchar和putchar進(jìn)行輸入輸出

1)putchar函數(shù):字符輸出函數(shù)
輸出字符變量的值舌涨。
2)getchar函數(shù):此函數(shù)的作用是從終端輸入一個(gè)字符,此函數(shù)沒(méi)有參數(shù)扔字。
e.g:
<code>#include<iostream>
using namespace std;
int main()
{
char c;
c=getchar();
putchar(c+32);putchar('\n')
return 0;
}</code>
input:a
output:A
注意:cout<<getchar();輸出的為ASCII碼值囊嘉。

7、使用scanf和printf進(jìn)行輸入輸出

scanf的輸入格式為scanf(格式控制革为,輸入表列)
printf的輸出格式為printf(格式控制扭粱,輸出表列)
p.s:感覺(jué)c的輸入輸出方式挺麻煩的,所以自己很少用震檩,明白什么意思能看懂程序就夠了琢蛤。

8蜓堕、關(guān)系運(yùn)算與關(guān)系表達(dá)式

高優(yōu)先級(jí):< <= > >=
低優(yōu)先級(jí):== !=

9博其、邏輯常量與邏輯變量

邏輯常量只有兩個(gè)fale和true套才。
邏輯型變量需要用標(biāo)識(shí)bool來(lái)定義,它的值只能是true和false之一慕淡。
邏輯型變量又稱布爾變量背伴。

10、邏輯運(yùn)算與邏輯表達(dá)式

且或非在上面提到過(guò)儡率。最經(jīng)典的就是閏年的判斷挂据。

11、12儿普、13

省略了崎逃,無(wú)非是選擇語(yǔ)句和for、while眉孩、do-while循環(huán)个绍。
p.s:有心情了再補(bǔ)上幾個(gè)例子,累了睡覺(jué)浪汪。
***---
補(bǔ)上選擇語(yǔ)句和循環(huán)結(jié)構(gòu)的程序:
選擇語(yǔ)句->if
<code>#include<iostream>
using namespace std;
int main()
{
int year;
bool leap;
cout<<"Please enter year"<<endl;
cin>>year;
if(year%4==0)
{if(year%100==0)
{if(year%400==0)
leap=true;
else leap=false;
}
else leap=true;
}
else leap=false;
}
else leap=false;
if(leap) cout<< year<< "is";
else cout<< year << "is not";
cout<< " a leap year"<< endl;
return 0;
}</code>
循環(huán)結(jié)構(gòu)->while
<code>#include<iostream>
using namespace std;
int main()
{
int i=1,sum=0;
while(i<=100)
{
sum=sum+i;
i++;
cout<< "sum= "<< sum<< endl;
}
return 0;
}
output:sum=5050</code>
do-while
<code>#include<iostream>
using namespace std;
int main()
{
int i=1,sum=0;
do
{
sum=sum+i;
i++;
}while(i<=100)
cout<< "sum="<< sum<< endl;
return 0;
}
output:sum=5050</code>
for循環(huán)
<code>#include<iostream>
using namespace std;
int main()
{
int sum=0;
for(int i=0;i<=100;i++)
{
sum=sum+i;
}
cout<< "sum="<< sum<< endl;
return 0;
}
output:sum=5050</code>
continue:結(jié)束本次循環(huán)進(jìn)入下一次循環(huán)巴柿。
break:跳出循環(huán)結(jié)構(gòu),執(zhí)行下一個(gè)代碼塊死遭。

四广恢、利用函數(shù)實(shí)現(xiàn)制定功能

1、什么是函數(shù)

函數(shù)(function)呀潭,原意為功能钉迷,那么一個(gè)函數(shù)就是一個(gè)功能。
p.s:在學(xué)習(xí)php的過(guò)程中钠署,php使用function定義函數(shù)糠聪。

2、函數(shù)的分類

1)系統(tǒng)函數(shù)谐鼎,即庫(kù)函數(shù)
2)用戶自己定義的函數(shù)
①無(wú)參函數(shù):調(diào)用函數(shù)時(shí)不必給出參數(shù)舰蟆。
②有參函數(shù):調(diào)用時(shí)要給出參數(shù)。

3狸棍、定義函數(shù)的一般形式

類型名 函數(shù)名
{
聲明部分
執(zhí)行語(yǔ)句
}

4身害、形參與實(shí)參【★★★★★】

1)在定義函數(shù)時(shí),函數(shù)名后面括號(hào)中的變量名稱為形式參數(shù)隔缀。
主函數(shù)中調(diào)用函數(shù)時(shí)被調(diào)用函數(shù)函數(shù)名后面括號(hào)中的參數(shù)為實(shí)際參數(shù)题造。
2)有關(guān)形參和實(shí)參【★★★】
①未出現(xiàn)函數(shù)調(diào)用時(shí),形式參數(shù)并沒(méi)有被分配內(nèi)存空間猾瘸,只有發(fā)生函數(shù)調(diào)用時(shí)才被分配內(nèi)存界赔,調(diào)用結(jié)束后所占內(nèi)存被釋放丢习。
②實(shí)參可以是變量常量或表達(dá)式
③定義函數(shù)時(shí)必須在函數(shù)首部指定形參類型。
④實(shí)參與實(shí)參應(yīng)該類型相同或兼容
⑤實(shí)參對(duì)形參的數(shù)據(jù)傳遞為單向傳遞淮悼,只能由實(shí)參傳給形參而不能回傳咐低。即調(diào)用結(jié)束后,實(shí)參的值沒(méi)有發(fā)生變化袜腥。|

5见擦、函數(shù)的返回值

通過(guò)函數(shù)的調(diào)用使調(diào)用函數(shù)的語(yǔ)句能得到一個(gè)確定的值,這就是函數(shù)的返回值羹令。
【我的理解就是執(zhí)行函數(shù)之后得到的值鲤屡,也就是一系列運(yùn)算之后的結(jié)果】
返回值通過(guò)return 語(yǔ)句實(shí)現(xiàn),return后可以是常量福侈、變量酒来、甚至是表達(dá)式。
函數(shù)類型決定函數(shù)返回值的類型(不符合時(shí)發(fā)生類型強(qiáng)轉(zhuǎn))肪凛。

6堰汉、函數(shù)的調(diào)用

1)函數(shù)在調(diào)用發(fā)生之前要完成函數(shù)的聲明【使編譯器得以正常運(yùn)行】
2)函數(shù)的定義和函數(shù)的聲明不是一回事。
函數(shù)的定義是指函數(shù)功能的確立伟墙,包括指定函數(shù)名翘鸭、函數(shù)類型、參數(shù)類型以及返回值戳葵。
函數(shù)的聲明是把函數(shù)的名字就乓、類型、參數(shù)的類型和個(gè)數(shù)告知編譯器拱烁,讓編譯器對(duì)調(diào)用函數(shù)和定義時(shí)做檢查档址,避免錯(cuò)誤。
函數(shù)聲明成為函數(shù)原型邻梆,作用主要是:根據(jù)函數(shù)原型在程序編譯階段對(duì)調(diào)用函數(shù)的合法性進(jìn)行全面的檢查。
p.s:函數(shù)的定義可以在函數(shù)調(diào)用前和函數(shù)調(diào)用后绎秒,如果發(fā)生在函數(shù)調(diào)用之前浦妄,則可以省去函數(shù)的聲明。

7见芹、函數(shù)的嵌套調(diào)用

在函數(shù)中套用相同函數(shù)剂娄;
e.g:很容易就能寫出兩個(gè)數(shù)或者三個(gè)數(shù)之間的求max函數(shù),如果面對(duì)四個(gè)甚至五個(gè)數(shù)求最大值問(wèn)題玄呛,可以使用函數(shù)套用的方式:
m=max(a,b)阅懦;
m=max(m,c);
m=max(m,d)徘铝;

8耳胎、函數(shù)的遞歸調(diào)用

1)在調(diào)用函數(shù)的過(guò)程中又出現(xiàn)直接或間接地調(diào)用函數(shù)本身惯吕,稱為函數(shù)的遞歸。
p.s:函數(shù)遞歸的典型問(wèn)題就是漢諾塔問(wèn)題以及斐波那契數(shù)列問(wèn)題怕午。
直接貼別人的博客地址废登,里面有詳解。
http://blog.csdn.net/yafei450225664/article/details/8647908

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末郁惜,一起剝皮案震驚了整個(gè)濱河市堡距,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌兆蕉,老刑警劉巖羽戒,帶你破解...
    沈念sama閱讀 206,126評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異虎韵,居然都是意外死亡易稠,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門劝术,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)缩多,“玉大人,你說(shuō)我怎么就攤上這事养晋〕倪海” “怎么了?”我有些...
    開(kāi)封第一講書人閱讀 152,445評(píng)論 0 341
  • 文/不壞的土叔 我叫張陵绳泉,是天一觀的道長(zhǎng)逊抡。 經(jīng)常有香客問(wèn)我,道長(zhǎng)零酪,這世上最難降的妖魔是什么冒嫡? 我笑而不...
    開(kāi)封第一講書人閱讀 55,185評(píng)論 1 278
  • 正文 為了忘掉前任,我火速辦了婚禮四苇,結(jié)果婚禮上孝凌,老公的妹妹穿的比我還像新娘。我一直安慰自己月腋,他們只是感情好蟀架,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,178評(píng)論 5 371
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著榆骚,像睡著了一般片拍。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上妓肢,一...
    開(kāi)封第一講書人閱讀 48,970評(píng)論 1 284
  • 那天捌省,我揣著相機(jī)與錄音,去河邊找鬼碉钠。 笑死纲缓,一個(gè)胖子當(dāng)著我的面吹牛卷拘,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播色徘,決...
    沈念sama閱讀 38,276評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼恭金,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了褂策?” 一聲冷哼從身側(cè)響起横腿,我...
    開(kāi)封第一講書人閱讀 36,927評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎斤寂,沒(méi)想到半個(gè)月后耿焊,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,400評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡遍搞,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,883評(píng)論 2 323
  • 正文 我和宋清朗相戀三年罗侯,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片溪猿。...
    茶點(diǎn)故事閱讀 37,997評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡钩杰,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出诊县,到底是詐尸還是另有隱情讲弄,我是刑警寧澤,帶...
    沈念sama閱讀 33,646評(píng)論 4 322
  • 正文 年R本政府宣布依痊,位于F島的核電站避除,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏胸嘁。R本人自食惡果不足惜瓶摆,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,213評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望性宏。 院中可真熱鬧群井,春花似錦、人聲如沸毫胜。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 30,204評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)指蚁。三九已至,卻和暖如春自晰,著一層夾襖步出監(jiān)牢的瞬間凝化,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 31,423評(píng)論 1 260
  • 我被黑心中介騙來(lái)泰國(guó)打工酬荞, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留搓劫,地道東北人瞧哟。 一個(gè)月前我還...
    沈念sama閱讀 45,423評(píng)論 2 352
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像枪向,于是被迫代替她去往敵國(guó)和親勤揩。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,722評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容