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

正文內容

c語言程序設計函數調用(存儲版)

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

下一頁面
  

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