2024年-c++函數(shù)學(xué)習(xí)課件_第1頁
2024年-c++函數(shù)學(xué)習(xí)課件_第2頁
2024年-c++函數(shù)學(xué)習(xí)課件_第3頁
2024年-c++函數(shù)學(xué)習(xí)課件_第4頁
2024年-c++函數(shù)學(xué)習(xí)課件_第5頁
已閱讀5頁,還剩67頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

函數(shù)1.什么是函數(shù)?2.函數(shù)的定義和說明3.函數(shù)的參數(shù)和返回值主要內(nèi)容4.函數(shù)的參數(shù)和返回值5.函數(shù)的調(diào)用方式6.函數(shù)的嵌套調(diào)用和遞歸調(diào)用22天津工程師范學(xué)院什么是函數(shù)編寫函數(shù),計算并打印若干給定整數(shù)(1、3、4)的階乘,要求每次打印數(shù)據(jù)后打印一行星號(10個)。1**********************6**********************24**********************……33天津工程師范學(xué)院什么是函數(shù)voidmain(){inta=1,b=3,c=4;intv=1;while(a>0){v*=a;a--;}cout<<v;for(inti=0;i<10;i++){cout<<"*";}cout<<endl;

v=1;while(a>0){v*=a;a--;}cout<<v;for(inti=0;i<10;i++){cout<<"*";}

cout<<endl;44天津工程師范學(xué)院什么是函數(shù) intgetfact(intm){intv=1;while(m>0){v*=m;m--;}returnv;}

voidcoutstar(){for(inti=0;i<10;i++)cout<<"*";cout<<endl;}voidmain(){ inta=19,b=123,c=67; cout<<getfact(a);

coutstar(); cout<<getfact(b);

coutstar(); cout<<getfact(c);

coutstar();}5參數(shù)類型參數(shù)名函數(shù)名返回類型函數(shù)體函數(shù)調(diào)用(參數(shù)傳遞)5天津工程師范學(xué)院什么是函數(shù)為什么需要函數(shù)提高效率,減少重復(fù)編寫程序的工作量。一個較大的程序不可能完全由一個人完成,更不可能把所有代碼放在一個主函數(shù)中。什么是函數(shù)函數(shù)(function)就是一段實(shí)現(xiàn)某個功能的代碼。66天津工程師范學(xué)院什么是函數(shù)一個程序包含若干個函數(shù)(但只有一個主函數(shù)),程序從主函數(shù)開始執(zhí)行。執(zhí)行過程中,主函數(shù)調(diào)用其它函數(shù),其他函數(shù)相互調(diào)用。實(shí)際應(yīng)用中,主函數(shù)一般比較簡單,作用就是調(diào)用其它函數(shù),而程序的功能全部都是由函數(shù)實(shí)現(xiàn)的。mainABCED77天津工程師范學(xué)院函數(shù)的定義和說明1、函數(shù)的定義格式<返回類型><函數(shù)名>(<參數(shù)列表>){若干條語句(函數(shù)體)}返回類型包含存儲類型和數(shù)據(jù)類型,存儲類型省略為外部函數(shù),數(shù)據(jù)類型不能省略。參數(shù)列表由若個參數(shù)組成,參數(shù)間用逗號分隔,給出參數(shù)名時還要給出參數(shù)的數(shù)據(jù)類型。88天津工程師范學(xué)院函數(shù)的定義和說明注意:1、函數(shù)的類型即函數(shù)返回值的類型,如果函數(shù)沒有返回值則返回類型為void。 voidcoutstar(){ … }2、參數(shù)定義方式intgetfact(intm){……}99天津工程師范學(xué)院什么是函數(shù)void

coutstar(){for(inti=0;i<10;i++){cout<<"*";}cout<<endl;}int

getfact(intm){ intv=1;while(m>0){v*=m;m--;}returnv;}1010天津工程師范學(xué)院什么是函數(shù)voidmain(){ inta=1,b=3,c=4;cout<<getfact(a);

coutstar();cout<<getfact(b);

coutstar(); ……}voidcoutstar(){……}intgetfact(intm){……}voidcoutstar(){……}intgetfact(intm){……}voidmain(){ inta=1,b=3,c=4; cout<<getfact(a);

coutstar();cout<<getfact(b);

coutstar(); ……}11函數(shù)說明int

getfact(int);voidcoutstar();11天津工程師范學(xué)院函數(shù)的定義和說明2、函數(shù)的說明如果函數(shù)定義在前,調(diào)用在后,調(diào)用前可以不說明。如果函數(shù)定義在調(diào)用之后,則必須在調(diào)用前說明函數(shù)的類型,名稱和參數(shù)。說明格式:<類型><函數(shù)名>(<參數(shù)列表>)例如,有函數(shù)定義如下:int

getfact(int

m){…}原型說明:int

getfact(int)要與定義時順序和類型相一致可省略參數(shù)名1212天津工程師范學(xué)院函數(shù)的定義和說明voidmain(){ inta=1,b=3,c=4;

voidcoutstar();

intgetfact(intm);cout<<getfact(a); coutstar(); ……}voidcoutstar(){……}intgetfact(intm){……}voidcoutstar();intgetfact(intm);voidmain(){ inta=1,b=3,c=4;

cout<<getfact(a); coutstar(); ……}voidcoutstar(){……}intgetfact(intm){……}1313天津工程師范學(xué)院函數(shù)的參數(shù)和返回值1、函數(shù)的參數(shù)在定義函數(shù)時,函數(shù)名后括號中的變量名為形式參數(shù)(形參)。定義函數(shù)時,必須寫出形參的個數(shù)、類型和名字。當(dāng)調(diào)用一個有參數(shù)的函數(shù)時,直接寫函數(shù)名調(diào)用函數(shù),函數(shù)名后括號中的參數(shù)為實(shí)際參數(shù)(實(shí)參)。實(shí)參不加數(shù)據(jù)類型,可以是常量、變量、表達(dá)式。1414天津工程師范學(xué)院函數(shù)的參數(shù)和返回值1、函數(shù)的參數(shù)在未被調(diào)用時,形參沒有確定值,只是形式上的參數(shù),只有被調(diào)用時才從調(diào)用函數(shù)中獲得實(shí)際參數(shù)。void

fun(intm){ cout<<m;}voidmain(){ inta=100; fun(a); fun(10); fun(10+a);}…………ma100100intm=a;1515天津工程師范學(xué)院函數(shù)的參數(shù)和返回值函數(shù)參數(shù)的求值順序參數(shù)的求值順序因編譯系統(tǒng)不同而不同,一般來說不會引起參數(shù)值不同,但在具有副作用的表達(dá)式中可能會造成二義性。inta=5;fun(a++,a);編寫程序要避免實(shí)參表達(dá)式中出現(xiàn)具有副作用的表達(dá)式1616天津工程師范學(xué)院6.1#include<iostream.h>intfun(inta,intb){ returna+b;}voidmain(){ inta(13),b(25); intsum=fun(a-1,a-b); cout<<sum<<endl;}1717天津工程師范學(xué)院函數(shù)的參數(shù)和返回值函數(shù)參數(shù)的默認(rèn)值在定義或說明函數(shù)時通過設(shè)置參數(shù)的默認(rèn)值,可以方便函數(shù)在調(diào)用時只寫出部分參數(shù)。例如doublefun(doublea=1.5,doubleb=2.6)在函數(shù)被調(diào)用時,如果對應(yīng)實(shí)參無值,則用形參的默認(rèn)值,如對應(yīng)實(shí)參有值,則用實(shí)參值,默認(rèn)值無效。fun(); //a=1.5,b=2.6fun(1.0) //a=1.0,b=2.61818天津工程師范學(xué)院函數(shù)的參數(shù)和返回值如,doublefun(doublea,doubleb=2.6),則以下調(diào)用函數(shù)語句有無錯誤?fun();fun(1.2);fun(1,3);又如doublefun(doublea=1.5,doubleb),則以下調(diào)用語句有無錯誤?fun(1.2);1919天津工程師范學(xué)院函數(shù)的參數(shù)和返回值注意設(shè)置形參的默認(rèn)值要求從參數(shù)的右端開始,在指定了默認(rèn)值的參數(shù)右端不允許出現(xiàn)沒有指定默認(rèn)值的參數(shù)。如果一個函數(shù)需要說明時,設(shè)置參數(shù)默認(rèn)值應(yīng)放在說明函數(shù)的語句中,不放在定義函數(shù)的語句中。參數(shù)默認(rèn)值可以只用表達(dá)式2020天津工程師范學(xué)院6.2#include<iostream.h>voidmain(){ voidfun(inti=1,intj=2,intk=3); fun(); fun(4); fun(5,6); fun(7,8,9);}voidfun(inti,intj,intk){ cout<<i+j+k<<endl;}2121天津工程師范學(xué)院函數(shù)的參數(shù)和返回值函數(shù)返回值的實(shí)現(xiàn)函數(shù)可以有返回值也可以沒有返回值。沒有返回值的函數(shù)類型為void,return語句可以省略。在函數(shù)中實(shí)現(xiàn)返回值的方法是使用帶有表達(dá)式的return語句:return[表達(dá)式];一個函數(shù)可以有一個以上return語句,執(zhí)行到哪一個return語句,哪一個return語句起作用。return后的表達(dá)式可以加括號,可以不加2222天津工程師范學(xué)院函數(shù)的參數(shù)和返回值return[表達(dá)式];的執(zhí)行過程;先計算表達(dá)式值;當(dāng)表達(dá)式值同函數(shù)返回類型不一致時,應(yīng)將表達(dá)式值轉(zhuǎn)換為返回類型;將表達(dá)式值返回給調(diào)用函數(shù),作為調(diào)用函數(shù)的值將程序的控制權(quán)返回到調(diào)用函數(shù)語句,執(zhí)行調(diào)用函數(shù)下面的語句。2323天津工程師范學(xué)院6.4#include<iostream.h>intfun(doublea,intb){ returna-b;}voidmain(){ doublex(11.5); inty(10); doublez=fun(x,y); cout<<z<<endl;}2424天津工程師范學(xué)院函數(shù)的調(diào)用方式函數(shù)根據(jù)調(diào)用方式分為傳值調(diào)用和引用調(diào)用。傳值調(diào)用 函數(shù)調(diào)用時,將實(shí)參的值傳遞給形參的調(diào)用方式。傳值調(diào)用中有個分為傳值和傳地址兩種。傳值是指傳遞變量或表達(dá)式的值傳地址是指傳遞變量的地址值2525天津工程師范學(xué)院函數(shù)的調(diào)用方式1、傳值調(diào)用實(shí)參為表達(dá)式,形參為變量實(shí)參復(fù)制一個副本給形參,在被調(diào)用函數(shù)中形參的值被改變時,實(shí)參不會受到影響。2626天津工程師范學(xué)院傳值調(diào)用1234567891011voidswap(int,int);voidmain(){ intx=100,y=0; swap(x,y); cout<<x<<","<<y<<endl;}voidswap(inta,intb){ intt; t=a;a=b;b=t; cout<<a<<","<<b<<endl;}

2727天津工程師范學(xué)院回顧注意:當(dāng)形參是普通變量時,實(shí)參可以是變量、常量、表達(dá)式,這時形參收到的是實(shí)參的值。傳參的過程就是初始化形參的過程(開辟空間+賦值)傳值方式不能通過改變形參來改變實(shí)參2828天津工程師范學(xué)院函數(shù)的嵌套調(diào)用和遞歸調(diào)用函數(shù)的嵌套調(diào)用嵌套調(diào)用是指在一個函數(shù)體中調(diào)用另一個函數(shù)。注意,函數(shù)可以嵌套調(diào)用,但是不能嵌套定義!mainABCED2929天津工程師范學(xué)院函數(shù)的嵌套調(diào)用和遞歸調(diào)用#include<iostream.h>voidfun1(),fun2(),fun3();voidmain(){ cout<<"Itisinmain()."<<endl;

fun2(); cout<<"Tiisbackmain()."<<endl;}voidfun1(){ cout<<"Itisinfun1()."<<endl;

fun3(); cout<<"Itisbackinfun1()."<<endl;}3030天津工程師范學(xué)院函數(shù)的嵌套調(diào)用和遞歸調(diào)用voidfun2(){ cout<<"Itisinfun2()."<<endl;

fun1(); cout<<"Itisbackinfun2()."<<endl;}voidfun3(){ cout<<"Itisinfun3()."<<endl;}3131天津工程師范學(xué)院函數(shù)的嵌套調(diào)用和遞歸調(diào)用函數(shù)的遞歸調(diào)用遞歸調(diào)用是指在一個函數(shù)體中直接或間接調(diào)用自己。mainDmainAD3232天津工程師范學(xué)院遞歸調(diào)用采用遞歸調(diào)用可以解決的問題是有限的,這些問題具有以下特點(diǎn):能夠?qū)⒃袉栴}分解為一個新問題,而這個新問題又要用原有問題的解決方法。按這一特點(diǎn)將問題分解下去,每次出現(xiàn)的新問題都是原有問題的簡化的子問題;(規(guī)模變小,形式不變)最終分解出來的新問題是具有已知解的問題。(有限)3333天津工程師范學(xué)院遞歸從鍵盤輸入一個正整數(shù),編程求出該函數(shù)的階乘,要求使用遞歸調(diào)用的方法。0!=11!=12!=1*23!=1*2*3n!=1*2*3*……*n=1!*2=2!*3=(n-1)!*n 1n=0,1fact(n)= fact(n-1)*nn>13434天津工程師范學(xué)院遞歸longfact(intn){ intc; if(n<=1){ return1; else returnfact(n-1)*n;}voidmain(){intn;cin>>n;cout<<fact(n)<<endl;}35 1n=0,1fact(n)= fact(n-1)*nn>1主函數(shù)voidmain()intfact(intn)fact(n)

5

435天津工程師范學(xué)院主函數(shù)voidmain()intfact(inti)fact(n)遞歸

5

4longfact(intn){ intc; if(n<=1){ return1; else returnfact(n-1)*n;}voidmain(){intn;cin>>n;cout<<fact(n)<<endl;}mainfact(n)輸出fact(n)returnfact(n-1)*nfact(n-1)returnfact(n-2)*(n-1)fact(1)return1…36天津工程師范學(xué)院重載函數(shù)請編寫絕對值函數(shù),函數(shù)返回參數(shù)的絕對值。1、參數(shù)為int類型2、參數(shù)為double類型3、參數(shù)為long類型intabs(inti){return(i>0?i,-i);}doubleabs1(doublei){return(i>0?i,-i);}longabs2(longi){return(i>0?i,-i);}voidmain(){ cout<<abs(-10); cout<<abs1(-2.5); ……}3737天津工程師范學(xué)院重載函數(shù)為什么要重載函數(shù)具有相同功能的函數(shù)如果不能用一個函數(shù)名,會給編寫和使用帶來不變。C++運(yùn)行多個函數(shù)具有相同的函數(shù)名,但其中任意兩個函數(shù)的參數(shù)個數(shù)、參數(shù)類型、類型順序不能完全相同。3838天津工程師范學(xué)院重載函數(shù)intfun();intfun(int);intfun(double);intfun(int,double);intfun(double,int);floatfun(int);inta=1;doubled=2.5;cout<<fun(d);cout<<fun(d,a);cout<<fun(a,d);cout<<fun(a);3939天津工程師范學(xué)院重載函數(shù)重載和函數(shù)的默認(rèn)參數(shù)可能會沖突,如果有沖突,不能同時使用。intfun(int);intfun(inta=10,doubled=100);intmain(){ cout<<fun(1);}4040天津工程師范學(xué)院重載函數(shù)intmax(int,int),max(int,int,int),max(int,int,int,int);voidmain(){ cout<<max(57,69)<<endl; cout<<max(60,59,61)<<endl; cout<<max(51,52,53,54)<<endl;}intmax(inta,intb){ returna>b?a:b;}intmax(inta,intb,intc){ intt=max(a,b); returnmax(t,c);}intmax(inta,intb,intc,intd){ intt1=max(a,b); intt2=max(c,d); returnmax(t1,t2);}4141天津工程師范學(xué)院例題:輸入兩個數(shù),求最大數(shù)并輸出。1)如果是輸入的是整數(shù)intmax(intx,inty);

{return(x>y)?x:y;}2)如果是輸入的是單精度數(shù)

floatmax(floatx,floaty){

return(x>y)?x:y;}3)如果是輸入的是字符

charmax(charx,chary)

{return(x>y)?x:y;}Tmax(Tx,Ty)

{return(x>y)?x:y;}函數(shù)模版42天津工程師范學(xué)院函數(shù)模版函數(shù)模版的一般格式為:template<classortypename標(biāo)識符><返回類型><函數(shù)名>(形式參數(shù)表){//函數(shù)體};模版關(guān)鍵字class和typename必選其中之一函數(shù)模版是用來定義個通用的函數(shù),以支持不同類型參數(shù)使用。函數(shù)模版是一種不指定某些參數(shù)的數(shù)據(jù)類型的函數(shù),在函數(shù)模版被調(diào)用時根據(jù)實(shí)際參數(shù)的類型決定這些函數(shù)模版的類型。43天津工程師范學(xué)院函數(shù)模版——實(shí)例1:求兩個數(shù)的最大值并輸出。#include<iostream.h>template<typenameT>TMAX(Tx,Ty){return(x>y)?x:y;}voidmain(){inta(4),b(6);charm('a'),n('b');cout<<MAX(a,b)<<endl;cout<<MAX(m,n)<<endl;}函數(shù)模版(僅僅是個說明,不能執(zhí)行)模版參數(shù)實(shí)例化編譯器通過實(shí)參的類型推導(dǎo)出函數(shù)模版的類型參數(shù)。44天津工程師范學(xué)院函數(shù)模版——實(shí)例2題目:定義一個函數(shù)模版,實(shí)現(xiàn)對兩個數(shù)的求和功能。解:定義一個函數(shù)模版Add(),它的功能是對傳來的兩個參數(shù)進(jìn)行求和運(yùn)算。這兩個參數(shù)可以是任何類型的參數(shù)。45天津工程師范學(xué)院#include<iostream.h>voidmain(){intx=3,y=5;floatx1=12.3,y1=3.4;doublex2=0.8,y2=23.5;cout<<”整數(shù)型:x+y=”<<Add(x,y)<<endl;cout<<”浮點(diǎn)型:x+y=”<<Add(x1,y1)<<endl;cout<<”雙精度:x+y=”<<Add(x2,y2)<<endl;}函數(shù)模版template<classT>TAdd(Tx,Ty) {returnx+y;}46天津工程師范學(xué)院函數(shù)模版——練習(xí)使用函數(shù)模板實(shí)現(xiàn)任意兩個同類型的數(shù)的交換。#include<iostream.h>voidmain(){inta(10),b(20);swap(a,b);cout<<"swapa,b"<<a<<""<<b<<endl;}template<typenameT>voidswap(T&x,T&y){Ttemp;temp=x;x=y;y=temp;}47天津工程師范學(xué)院函數(shù)模版——含有兩個以上其不同參數(shù)。定義函數(shù)模版時可以使用多個類型參數(shù),每個類型參數(shù)前面只需加上關(guān)鍵字class,用逗號分割:template<classT1,classT2,…,classTn>例如:template<classT1,classT2>T1Max(T1x,T2y){returnx>=y?x:(T1)y};48天津工程師范學(xué)院內(nèi)聯(lián)函數(shù)調(diào)用函數(shù)需要一定的時間和空間開銷:voidmain(){a();}voida(){}

5

44949天津工程師范學(xué)院內(nèi)聯(lián)函數(shù)C++提供了一種高效方式:在編譯時將所調(diào)用函數(shù)的代碼直接嵌入到調(diào)用函數(shù)中,而不是流程轉(zhuǎn)出去,這種被調(diào)用函數(shù)叫內(nèi)聯(lián)函數(shù)。指定內(nèi)聯(lián)函數(shù)只需在函數(shù)首行的左端加一個“inline”關(guān)鍵字。5050天津工程師范學(xué)院內(nèi)聯(lián)函數(shù)……inlineintmax(int,int);intmain(){inti=1,j=20;cout<<max(i,j);}inlineintmax(inta,intb){if(a<b){a=b;}returna;}……intmain(){inti=1,j=20;intm;inta,b;a=i;b=jif(a<b){a=b;}m=a;cout<<m;}5151天津工程師范學(xué)院內(nèi)聯(lián)函數(shù)對函數(shù)進(jìn)行內(nèi)聯(lián)聲明,可以看成是程序設(shè)計者對編譯系統(tǒng)提出一個建議,而不是強(qiáng)制命令。編譯系統(tǒng)會自己決定是否采用內(nèi)聯(lián)形式編譯源文件。只有規(guī)模比較小(5個語句以下),調(diào)用比較頻繁的簡單函數(shù)適合作為內(nèi)聯(lián)函數(shù)。內(nèi)聯(lián)函數(shù)可以有選擇語句,不能包含復(fù)雜控制語句,如循環(huán)和開關(guān)語句。5252天津工程師范學(xué)院標(biāo)識符的作用域和生命期標(biāo)識符:變量名、常量名、函數(shù)名、……標(biāo)識符的作用域作用域就是變量的有效范圍,在作用域以外是無法訪問這些變量的。變量只能在說明它和定義它的范圍是可見的。根據(jù)作用域不同,變量分為全局變量和局部變量兩種。5353天津工程師范學(xué)院變量的作用域和生命期局部變量:在一個函數(shù)(或復(fù)合語句)內(nèi)部定義的變量是局部變量,它只在函數(shù)(或復(fù)合語句)內(nèi)有效,函數(shù)(或復(fù)合語句)外是不能訪問這些變量的。全局變量:在函數(shù)外部定義的變量是全局變量,它的有效范圍從定義開始到文件結(jié)束。5454天津工程師范學(xué)院變量的作用域和生命期inta=0;//全局intmain(){ intb,c{ ……inti,j;…… }} for(inti=0;i<6;) { inti=7; floata=5f; cout<<i<<endl; i++; }cout<<i<<endl;//cout<<a<<endl;}5555天津工程師范學(xué)院變量的作用域和生命期注意:形式參數(shù)屬于局部變量,相當(dāng)于定義在函數(shù)內(nèi)。不同函數(shù)中可以使用相同的變量名,使用不同內(nèi)存單元,互不干擾。作用域重疊的變量,取最近定義有效。全局變量不宜定義過多,為降低程序的清晰性和通用性。全局變量有默認(rèn)值:char型變量為空,int型變量為0,浮點(diǎn)型變量為0.0。5656天津工程師范學(xué)院變量的作用域和生命期inti(0);voidmain(){ inti=10; for(intj(1);j<=2;j++){ { inti=100; j++; cout<<i<<','<<j<<endl; } cout<<i<<','<<j<<endl; i=fun();} cout<<i<<','<<j<<endl; }intfun(){ returni;}5757天津工程師范學(xué)院變量的作用域和生命期變量的生命期變量有誕生到消亡的過程。生命期就是變量從開始在內(nèi)存中占用存儲單元到撤銷所占內(nèi)存單元的一段時間。變量的生命期同它的存儲類型有關(guān)。根據(jù)存儲類型的不同,變量分為動態(tài)變量和靜態(tài)變量兩種。58程序區(qū)靜態(tài)存儲區(qū)動態(tài)存儲區(qū)58天津工程師范學(xué)院變量的作用域和生命期動態(tài)存儲方式是指在程序運(yùn)行期間,系統(tǒng)對變量動態(tài)地分配存儲空間。動態(tài)存儲區(qū)存放以下變量:1、函數(shù)的形參,在函數(shù)調(diào)用時分配單元2、函數(shù)中的自動變量(未加static的局部變量)系統(tǒng)在函數(shù)調(diào)用開始時分配動態(tài)空間,函數(shù)結(jié)束時,釋放這些空間。由于是動態(tài)分配的,兩次調(diào)用同一個函數(shù)時,函數(shù)中的變量所占存儲單元可能不一樣。5959天津工程師范學(xué)院變量的作用域和生命期靜態(tài)存儲方式是指在程序運(yùn)行期間,系統(tǒng)對變量分配固定的存儲空間。全局變量,在程序開始執(zhí)行時,為他們分配固定的存儲單元,程序結(jié)束釋放這些空間。靜態(tài)局部變量(函數(shù)中加static的局部變量),第一次被調(diào)用時分配空間,此后一直存在靜態(tài)存儲區(qū),直到程序運(yùn)行結(jié)束。靜態(tài)存儲區(qū)動態(tài)存儲區(qū)6060天津工程師范學(xué)院voidfun();voidmain(){ for(inti(0);i<4;i++) fun();}voidfun(){ inta(0); a++;

staticintb; b++; cout<<"a="<<a<<','<<"b="<<b<<endl;}6161天津工程師范學(xué)院變量的作用域和生命期注意:靜態(tài)局部變量(函數(shù)中加static的局部變量),具有默認(rèn)值,與全局變量一樣。char型變量為空,int型變量為0,浮點(diǎn)型變量為0.0。6262天津工程師范學(xué)院intfac(int);voidmain(){ ints(0); for(inti(1);i<=5;i++) s+=fac(i); cout<<“result="<<s<<endl;}intfac(intn){

staticintb=1; b*=n; cout<<"b="<<b<<endl; returnb;}6363天津工程師范學(xué)院函數(shù)的存儲類外部函數(shù),可以在定義它的程序文件和外部程序文件調(diào)用。extern<返回類型><函數(shù)名>([參數(shù)列表]){……}其中,extern可以省略。P112例5.20,體會多源程序文件。6464天津工程師范學(xué)院函數(shù)的存儲類內(nèi)部函數(shù),只能在定義它的程序文件中使用。static<返回類型><函數(shù)名>([參數(shù)列表]){……}6565天津工程師范學(xué)院練習(xí)——觀察程序有無錯誤#include<iostream.h>voidmain(){ fun(); cout<<"notfuny!"<<endl;}voidfun(){cout<<"sofuny!"<<endl;}66voidfun();voidfun();66天津工程師范學(xué)院#include<iostream.h>voidfun();voidmain(){ fun(); cout<<"notfuny!"<<endl;}voidfun(inta){cout<<"sofuny!"<<a<<endl;}#include<iostream.h>voidfun();voidmain(){ fun(); cout<<"notfuny!"<<endl;}voidfun(inta){cout<<"sofuny!"<<a<<endl;}#include<iostream.h>voidfun();voidmain(){ fun(); cout<<"notfuny!"<<endl;}voidfun(inta){cout<<"sofuny!"<<a<<endl;}觀察程序有無錯誤#include<iostream.h>voidfun();voidmain(){ fun(); cout<<"notfuny!"<<endl;}void

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論