freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

函數(shù)是c程序的基本模塊可將一些功能相對(duì)獨(dú)立的或經(jīng)常-文庫(kù)吧

2025-04-22 07:55 本頁(yè)面


【正文】 沒(méi)有返回值 。 對(duì)于沒(méi)有返回值的函數(shù) , 功能只是完成一定操作 , 應(yīng)將返回值類(lèi)型定義為 void , 函數(shù)體內(nèi)可以沒(méi)有return語(yǔ)句 , 當(dāng)需要在程序指定位置退出時(shí) , 可以在該處放置一個(gè): return ; 結(jié)束 函數(shù)原型說(shuō)明 函數(shù)原型是一條以分號(hào)結(jié)束的語(yǔ)句 , 實(shí)際上就是所定義函數(shù)的函數(shù)頭 , 形如: 《 函數(shù)返回值類(lèi)型 》 函數(shù)名 (《 形參表 》 ) 語(yǔ)法上對(duì)程序文件中函數(shù)的排列次序是沒(méi)有固定要求的 ,只要滿(mǎn)足 先定義后使用 即可 。 但從結(jié)構(gòu)化程序設(shè)計(jì)的角度 ,通常是先調(diào)用后定義 。 使用函數(shù)原型 , 則既符合由粗到精的思維方式 , 又滿(mǎn)足了語(yǔ)法要求 。 其中形參表可以逐個(gè)列出每個(gè)參數(shù)的類(lèi)型和參數(shù)名,也可以列出每個(gè)形參的類(lèi)型, 參數(shù)名可省略 ,各形參之間以逗號(hào)分隔。函數(shù)原型和所定義的函數(shù)必須在返回值類(lèi)型、函數(shù)名、形參個(gè)數(shù)和類(lèi)型及 次序 等方面完全對(duì)應(yīng)一致,否則將導(dǎo)致編譯錯(cuò)誤。 下面是一個(gè)使用結(jié)構(gòu)化程序設(shè)計(jì)思想開(kāi)發(fā)的企業(yè)管理報(bào)表程序的框架 。 它使用了函數(shù)原型說(shuō)明 。 include void menu_print()。 void account_report()。 void engineering_report()。 void marketing_report()。 void main(){ int choice。 do{ menu_print()。 cinchoice。 }while(choice=0||choice=4)。 switch(choice){ case 1: account_report()。 break。 case 2: engineering_report()。 break。 case 3: marketing_report()。 break。 } } void menu_print() { cout”系統(tǒng)功能:” endl。 cout”1 財(cái)務(wù)報(bào)表” endl。 cout”2 工程報(bào)表” endl。 cout”3 市場(chǎng)報(bào)表” endl。 cout”選擇業(yè)務(wù)序號(hào):” 。 } void account_report(){ //生成財(cái)務(wù)報(bào)表 } void engineering_report(){ //生成工程報(bào)表 } void marketing_report(){ //生成市場(chǎng)報(bào)表; } 函數(shù)原型說(shuō)明 【 例 4. 4】 輸出所有滿(mǎn)足下列條件的正整數(shù) m:10m1000且 m、 m m3均為回文數(shù) 。 分析: 回文指左右對(duì)稱(chēng)的序列 。 如 12 353等就是回文數(shù) 。 判斷整數(shù)是否回文數(shù)用函數(shù)實(shí)現(xiàn) , 其思想是將該數(shù)各位拆開(kāi)后反向組成新的整數(shù) , 如果該整數(shù)與原數(shù)相等則為回文數(shù) 。 程序如下: include include bool palindrome(int)。//函數(shù)原型 void main(){ coutsetw(10)39。m39。setw(20)m*m“ setw(20)m*m*mendl。 for(int m=11。m1000。m++) if(palindrome(m)amp。amp。palindrome(m*m) amp。amp。palindrome(m*m*m)) coutsetw(10)msetw(20)m*m setw(20)m*m*endl。 } bool palindrome(int n){ int digit[10]。 int m=n,i=0。 do{ digit[i]=n%10。 n/=10。i++。 }while(n0)。 for(intj=0。ji。j++) n=n*10+digit[j]。 return (n==m)。 } 函數(shù)原型說(shuō)明 m m*m m*m*m 11 121 1331 101 10201 1030301 111 12321 1367631 運(yùn)行結(jié)果: 全局變量和局部變量 4. 3. 1 變量的存儲(chǔ)機(jī)制與 C++的內(nèi)存布局 4. 3. 2 全局變量 4. 3. 3 局部變量 變量的存儲(chǔ)機(jī)制與 C++的內(nèi)存布局 堆區(qū) (動(dòng)態(tài)數(shù)據(jù) ) 棧區(qū)(函數(shù)局部數(shù)據(jù)) ( main()函數(shù)局部數(shù)據(jù)) 全局?jǐn)?shù)據(jù)區(qū) (全局、靜態(tài)變量 ) 代碼區(qū)(程序代碼) 操作系統(tǒng)為一個(gè) C++程序的運(yùn)行所分配的內(nèi)存分為四個(gè)區(qū)域 , 如圖 程序在內(nèi)存中的區(qū)域 所示: ( 1)代碼區(qū)( Code area):存放程序代碼,即程序中各個(gè)函數(shù)的代碼塊; ( 2)全局?jǐn)?shù)據(jù)區(qū)( Data area):存放全局?jǐn)?shù)據(jù)和靜態(tài)數(shù)據(jù);分配該區(qū)時(shí)內(nèi)存全部清零。 ( 3)棧區(qū)( Stack area):存放局部變量,如函數(shù)中的變量等;分配棧區(qū)時(shí)內(nèi)存不處理。 ( 4)堆區(qū)( Heap area):存放與指針相關(guān)的動(dòng)態(tài)數(shù)據(jù)。分配堆區(qū)時(shí)內(nèi)存不處理。參見(jiàn)第七章。 變量的存儲(chǔ)機(jī)制與 C++的內(nèi)存布局 全局變量 在所有函數(shù)之外定義的變量稱(chēng)為 全局變量 。 全局變量在編譯時(shí)建立在全局?jǐn)?shù)據(jù)區(qū) , 在未給出初始化值時(shí)系統(tǒng)自動(dòng) 初始化為全 0。 全局變量可定義在程序開(kāi)頭 , 也可定義在中間位置 , 該全局變量 在定義處之后 的任何位置都是可以訪(fǎng)問(wèn)的 , 稱(chēng)為可見(jiàn)的 。 請(qǐng)看下例: 全局變量 打印 200 調(diào)用 func( ) 函數(shù) func( ) 200*2 =400 打印 400 n=100 n=100*2 =200 【 例 4. 5】 多個(gè)函數(shù)使用全局變量的例子 。 include int n=100。 void func(){ n*=2。 } void main(){ n*=2。 coutnendl。 func()。 coutnendl。 } 局部變量 定義在函數(shù)內(nèi)或塊內(nèi)的變量稱(chēng)為 局部變量 。 程序中使用的絕大多數(shù)變量都是局部變量 。 局部變量在程序運(yùn)行到它所在的塊時(shí)建立在棧中 ,該塊執(zhí)行完畢局部變量占有的空間即被釋放 。 局部變量在定義時(shí)可加修飾詞 auto, 但通常省略 。局部變量在定義時(shí)若未初始化 , 其值為隨機(jī)數(shù) 。 局部變量 打印 main()中的 t= 調(diào)用 fun( ) 函數(shù) fun( ) 打印 fun()中的 t=5 打印 main()中的 t= t= t = 5 【 例 4. 9】 使用局部變量的例子 。 include void fun(){ auto int t=5。 // fun()中的局部變量 , auto可省略 coutfun()中的 t=tendl。 } void main(){ float t=。 //main()函數(shù)中的局部變量 coutmain()中的 t=tendl。 fun()。 coutmain()中的 t=tendl。 } 函數(shù)調(diào)用機(jī)制 局部變量占用的內(nèi)存是在程序執(zhí)行過(guò)程中 “ 動(dòng)態(tài) ” 地建立和釋放的 。 這種 “ 動(dòng)態(tài) ” 是通過(guò)棧由系統(tǒng)自動(dòng)管理進(jìn)行的 。 當(dāng)任何一個(gè)函數(shù)調(diào)用發(fā)生時(shí) , 系統(tǒng)都要作以下工作: ( 1) 建立??臻g; ( 6) 恢復(fù)現(xiàn)場(chǎng):取主調(diào)函數(shù)運(yùn)行狀態(tài)及返回地址 , 釋放??臻g; ( 7) 繼續(xù)主調(diào)函數(shù)后續(xù)語(yǔ)句 。 ( 5) 釋放被調(diào)函數(shù)中局部變量占用的棧空間; ( 4) 執(zhí)行被調(diào)函數(shù)函數(shù)體; ( 3) 為被調(diào)函數(shù)中的局部變量分配空間 , 完成參數(shù)傳遞; ( 2) 保護(hù)現(xiàn)場(chǎng):主調(diào)函數(shù)運(yùn)行狀態(tài)和返回地址入棧; 函數(shù)調(diào)用機(jī)制 void fun1(int, int)。 void fun2(float)。 void main(){ int x=1。y=2。 fun1(x, y)。 } void fun1(int a,int b){ float x=3。 fun2(x)。 } void fun2(float y) { int x。 … } x 棧頂 棧底 y 3 fun2() fun1()運(yùn)行狀態(tài)及返回地址 x 3 b 2 a 1 fun1() main()運(yùn)行狀態(tài)及返回地址 y 2 x 1 main() 操作系統(tǒng)運(yùn)行狀態(tài)及返回地址 此圖例說(shuō)明 在程序執(zhí)行過(guò)程中怎樣通過(guò)?!?動(dòng)態(tài) ”地建立和釋放局部變量占用的內(nèi)存的 作用域與存儲(chǔ)類(lèi)型 作 用 域 變量的存儲(chǔ)類(lèi)型 生命期與可見(jiàn)性 作用域 1 塊作用域 3 文件作用域 2 函數(shù)原型作用域 作用域 指標(biāo)識(shí)符能夠被使用的范圍 。 只有在作用域內(nèi)標(biāo)識(shí)符才可以被訪(fǎng)問(wèn) ( 稱(chēng)為可見(jiàn) ) 。 本節(jié)只討論 局部域 和文件域 ( 全局域 ) , 其中局部域包括 塊域 和 函數(shù)原型域 。 任何 標(biāo)識(shí)符 作用域的起始點(diǎn)均為 標(biāo)識(shí)符說(shuō)明 處 。 下面分別介紹 : 參和函數(shù)體中定義的局部變量 , 作用域都在該函數(shù)內(nèi) ,也稱(chēng)作 函數(shù)域 。 1. 塊域 塊 指一對(duì)大括號(hào)括起來(lái)的程序段 。 塊中定義的標(biāo)識(shí)符 , 作用域在塊內(nèi) 。 復(fù)合語(yǔ)句是一個(gè)塊 。 函數(shù)也是一個(gè)塊 。 復(fù)合語(yǔ)句中定義的標(biāo)識(shí)符 , 作用域僅在該復(fù)合語(yǔ)句中 。 函數(shù)中定義的標(biāo)識(shí)符 , 包括形 1. 塊域 a= 3 b= 5 3 5 a=3 b=5 a=5 b=3 【 例 4. 7】 輸入兩數(shù) , 將兩數(shù)按從大到小的順序保存 , 并輸出結(jié)果 。 結(jié)果 棧 t = 3 include void main(){ int a,b。 //具有函數(shù)域 cout輸入兩整數(shù): endl。 cinab。 cout“a=a39。\t39。b=bendl。 if(b=a){ int t。 //具有塊域 t=a。 a=b。 b=t。 //交換 a,b的值 } couta=a39。\t39。b=bendl。 } 【 例 4. 8】 設(shè)
點(diǎn)擊復(fù)制文檔內(nèi)容
高考資料相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1