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

正文內(nèi)容

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

2025-04-22 07:55 本頁面


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