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

正文內(nèi)容

c語言程序設(shè)計(jì)函數(shù)調(diào)用(存儲版)

2025-02-11 17:30上一頁面

下一頁面
  

【正文】 元,而不是動態(tài)地分配和釋放。程序運(yùn)行過程中,這種分配和釋放是動態(tài)的,如果在一個程序中兩次調(diào)用同一函數(shù),分配給此函數(shù)中局部變量的存儲空間地址可能是不同的。外部( extern)。 ? auto int b, c=9。靜態(tài)變量是在編譯時賦初值,因此在程序執(zhí)行期間,一旦存儲單元中的值改變,就不會再執(zhí)行賦初值語句。 printf( ″x=%d \n″ , x) 。 ? ( 2)外部靜態(tài)變量 ? 當(dāng)定義一全局變量時,若將其指定為 static類,則說明該全局變量只在本源程序文件中使用,其他的源程序文件不能引用該全局變量。 ? 在計(jì)算機(jī)中,從內(nèi)存 “ 存取 ” 數(shù)據(jù)要比直接從寄存器中“ 存取 ” 數(shù)據(jù)慢,所以對一些使用特別頻繁的變量,可通過register將其定義成寄存器變量,使程序直接從寄存器中 “ 存取 ” 數(shù)據(jù),以提高程序的效率。當(dāng)未對全局 ? 變量指定存儲類別時,隱含為 extern類別。a, amp。 ? power( n) ? int n。 ? 存儲類別小結(jié) ? 對一個數(shù)據(jù)的定義,需要指定兩種屬性 :數(shù)據(jù)類型和存儲類別,分別用兩個關(guān)鍵字進(jìn)行定義,如 : ? static int a。定義時被說明成 static類別,靜態(tài)函數(shù)只局限于所在文件,其他文件不能調(diào)用。 ? extern void swap() ? scanf( ″%d%d″ , amp。x=y。 ? 例 ? (文件 1) ? extern float add() 。} ? 在文件 main函數(shù)中要調(diào)用 add函數(shù),而 add函數(shù)在 。i++) 程序設(shè)計(jì)舉例 ? printf( ″%d!=%d \n″ , i, fac( i)) 。 程序設(shè)計(jì)題目 。 ? for( i=1。 ? } ? … . ? /* */ ? (文件 2) ? float add( x, y) ? float x, y。 ? 格式 extern類型標(biāo)識符函數(shù)名(形參表) ? C語言規(guī)定,如果在定義函數(shù)時省略 extern,則隱含為外部函數(shù)。 ? { ? int t。通常把只能由同一文件使用的內(nèi)部函數(shù)和外部變量放在一個文件中,在它們前面加上 static使之局部化,其他文件不能引用。它們采取的存儲類別如下 : ? 自動變量,即動態(tài)局部變量(離開函數(shù),值就消失) ? 靜態(tài)局部變量(離開函數(shù),值仍然保留) ? 寄存器變量(離開函數(shù),值就消失) ? (形式參數(shù)可以定義為自動變量或寄存器變量) 局部變量 ? 靜態(tài)外部變量(只限本文件引用) ? 外部變量 (即非靜態(tài)的外部變量 ,允許其他文件引用 ) ? ( 2)從變量存在的時間來區(qū)分,有動態(tài)存儲和靜態(tài)存儲兩種類型。 ? } ? 程序文件 f1中的最后一行為對全局變量 a的定義, main函數(shù)在其作用域之外,所以在 main函數(shù)中對其進(jìn)行了外部說明,而在文件 f2中的第一行也是對 a進(jìn)行說明。 ? } ? int a。 ? printf( ″a , m=?\n″ ) 。 ? ( 4)局部靜態(tài)變量不能定義為寄存器變量,不能寫成 : ? register static a, b, c。例如,函數(shù)體中的變量說明 : ? register int a, b。后一種情況 x是局部靜態(tài)變量,f1()函數(shù)第一次被調(diào)用時, x 為 0,退出時為 1。 ? } ? 運(yùn)行結(jié)果 : ? x=1 f1() { int x=0。 ? ( 1)局部靜態(tài)變量 ? 在函數(shù)體內(nèi)用 static說明的變量稱為靜態(tài)局部變量。 /*定義 b、 c為自動變量 */ ? … ? } ? b、 c是自動變量, c=9,執(zhí)行完 f函數(shù)后自動釋放其所占的存儲單元。靜態(tài)( static)。 ? ③函數(shù)調(diào)用時的現(xiàn)場保護(hù)和返回地址等。全局變量存放在靜態(tài)存儲區(qū)中。 ? 變量的存儲類別 ? 從變量的作用域(即從空間)角度來分,可以分為全局變量和局部變量。 ? return( c) 。 ? 外部變量的定義與外部變量的說明并不是一回事。 ? z=xy?x:y。建議不要無限制地使用全局變量。 … ? } 全局變量 c c2作用域 全局變量 a、 b作用域 ? a、 b、 c c2都是全局變量,但它們的作用范圍不同。 ? 在函數(shù)體外進(jìn)行的函數(shù)說明也使該函數(shù)具有全局的性質(zhì)。在復(fù)合語句中也可以定義本段程序的局部變量。 ? 例如 : ? f1() ? { ? int a, b。定義位置不同,變量的作用域不同,即變量所起作用的范圍不同。 ? ( 4)數(shù)組名做函數(shù)參數(shù)時 ,把實(shí)參數(shù)組的起始地址傳遞給形參數(shù)組 ,這樣兩個數(shù)組就共占同一段內(nèi)存單元。i++) ? sum=sum+a[ i] 。若要求形參數(shù)組得到實(shí)參數(shù)組全部的元素值,則應(yīng)當(dāng)指定形參數(shù)組與實(shí)參數(shù)組大小一致。i++) ? scanf( ″%f″ , amp。i++) ? sum=sum+a[ i] 。 ? } ? 數(shù)組元素做函數(shù)實(shí)參 ? 由于實(shí)參可以是表達(dá)式,數(shù)組元素又可以是表達(dá)式的組成部分,因此數(shù)組元素可以作為函數(shù)的實(shí)參,與變量作實(shí)參一樣 ,是單向傳遞,即 “ 值傳送 ” 。 ? ( 2)如果被調(diào)用函數(shù)的定義出現(xiàn)在主調(diào)函數(shù)之前,可以不進(jìn)行說明,因?yàn)榫幾g系統(tǒng)已經(jīng)先知道了已定義的函數(shù)類型,會自動處理。 ? 當(dāng)執(zhí)行到函數(shù)體的右花括號或 return語句時,表示函數(shù)體執(zhí)行完成,這時將返回到主調(diào)程序中。在內(nèi)存中,實(shí)參單元與形參單元是不同的單元。調(diào)用結(jié)束后,形參所占用的內(nèi)存單元也同時被釋放。 /* 函數(shù)體中的說明部分 */ ? z=xy?x:y。這是由系統(tǒng)提供的,用戶不用自己定義。 ? ( 3)從用戶使用的角度看,函數(shù)分兩種 : ? ① 標(biāo)準(zhǔn)函數(shù),即庫函數(shù)。 /* 形式參數(shù)說明 */ ? { ? int z。只有在發(fā)生函數(shù)調(diào)用時函數(shù) max 中的形參才被分配內(nèi)存單元。 ? ( 5)實(shí)參變量對形參變量的數(shù)據(jù)傳遞是 “ 值傳遞 ” ,即單向傳遞,只由實(shí)參傳給形參,而不能由形參傳回來給實(shí)參。 ? 函數(shù)調(diào)用語句的執(zhí)行過程 :首先計(jì)算每個實(shí)參表達(dá)式的值,并把此值存入所對應(yīng)的形參單元中,然后把執(zhí)行流程轉(zhuǎn)入函數(shù)體中,執(zhí)行函數(shù)體中的語句,函數(shù)體執(zhí)行完之后,將返回到調(diào)用此函數(shù)的程序中的下一條語句,繼續(xù)
點(diǎn)擊復(fù)制文檔內(nèi)容
規(guī)章制度相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1