c++編程自定義函數(shù)_第1頁
c++編程自定義函數(shù)_第2頁
c++編程自定義函數(shù)_第3頁
c++編程自定義函數(shù)_第4頁
c++編程自定義函數(shù)_第5頁
已閱讀5頁,還剩87頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、1第2-4講 自定義函數(shù)函數(shù)的根本知識函數(shù)的定義函數(shù)的參數(shù)函數(shù)的返回值函數(shù)的調(diào)用函數(shù)調(diào)用的一般形式調(diào)用的方式嵌套調(diào)用遞歸調(diào)用函數(shù)與數(shù)組局部變量和全局變量變量的動態(tài)存儲方式和靜態(tài)存儲方式24.1 概述C語言函數(shù)分為兩類:庫函數(shù)scanf printf sqrt cos strcmp自定義函數(shù)main每個程序必須有一個main函數(shù)說明程序運行的起始點只用一個main編程,可能使程序太大、太復雜例4-1,輸出如下圖內(nèi)容:34在面向過程的程序設計中,一個較為復雜的程序一般通過模塊化,分解成主模塊與假設干子模塊的組合,即一個主函數(shù)與假設干子函數(shù)。“分的優(yōu)點:便于自上而下的模塊化編程;通過在適當?shù)牡胤绞褂?/p>

2、函數(shù),可以減短源程序的長度;更容易定位和隔離有錯誤的函數(shù),便于進一步的檢查;函數(shù)可以被其他多個程序使用。模塊化程序設計可以把大型程序組織成小而獨立的程序段模塊,它們單獨命名,是單個的可調(diào)用的程序單元。在C語言中,每個模塊就是一個函數(shù),負責完成單個任務。C語言程序一般都由許多小的函數(shù)組成。5模塊化程序設計的特征:每個模塊只做一件事情。模塊之間的通信只允許通過調(diào)用模塊來實現(xiàn)。某個模塊只能被更高一級的模塊調(diào)用。如果不存在調(diào)用與被調(diào)用關系,模塊之間是不能直接通信的。所有模塊都是使用控制結構設計成單入口、單出口的系統(tǒng)。6例4-2,將例4-1中重復執(zhí)行的局部改寫成函數(shù)/ 函數(shù)聲明原型/ 函數(shù)調(diào)用/ 函數(shù)定

3、義函數(shù)體函數(shù)派生數(shù)據(jù)類型函數(shù)名標識符函數(shù)具有與之相關的類型使用之前,函數(shù)名及其類型必須已經(jīng)聲明和定義。7多函數(shù)程序函數(shù)就是含有執(zhí)行某個特定任務的代碼塊。函數(shù)一旦設計和封裝后,就可以看作是一個“黑盒子,它從主程序中獲得一些數(shù)據(jù),并返回一個值。函數(shù)操作的內(nèi)部細節(jié)對程序的其他局部是不可見的。程序所知道的函數(shù)就是:輸入什么數(shù)據(jù)以及輸出什么數(shù)據(jù)。每個C程序至少包含一個函數(shù),即main函數(shù)主函數(shù)。由主函數(shù)調(diào)用其它函數(shù),其它函數(shù)也可以互相調(diào)用。同一個函數(shù)可以被一個或多個函數(shù)調(diào)用任意屢次。一個程序可以保存在一個或多個源文件中。各個文件可以單獨編譯,并可以與庫中已編譯過的函數(shù)一起加載。84.2 函數(shù)的根本知識一

4、、函數(shù)的定義 包括以下元素函數(shù)名函數(shù)類型參數(shù)列表局部變量聲明函數(shù)語句返回語句函數(shù)頭函數(shù)體9 函數(shù)定義的一般格式:函數(shù)類型 函數(shù)名形式參數(shù)列表/函數(shù)頭,末尾沒有; 局部變量聲明; 語句1; 語句2; . return 語句;函數(shù)類型,即函數(shù)帶回來的值的類型。缺省為int。如不返回任何值,那么函數(shù)類型應指定為void也是C的根本類型之一10形參,以接收從調(diào)用函數(shù)發(fā)送來的數(shù)據(jù)。形參列表包含了變量的聲明,變量之間用逗號分隔開;一般格式為:type1 name1, type2 name2, , type n name n其中: type1 , type2 , type n 是類型標識符,表示形參的類型;

5、 name1, name2, , name n 是形參名。float quadratic(int a, int b, intc) .double power(double x, int n) .float mul(float x, float y) .int sum(int a, int b) .int sum(int a, b) . 錯形參可以沒有,即“無參函數(shù)。可以在參數(shù)列表的括號中使用關鍵字voidvoid PrintLine(void) .函數(shù)在沒被調(diào)用時,形參只是一個符號。只有函數(shù)在被調(diào)用時,才由主調(diào)函數(shù)將實際參數(shù)實參賦予形參。11函數(shù)體,包含了函數(shù)聲明及完成任務所需的語句。依次為:

6、1) 局部變量,即本函數(shù)所需的變量;2) 完成函數(shù)任務的語句;3) return 語句,返回函數(shù)所得的值。不返回函數(shù)值可以省略return語句,但要注意把函數(shù)的返回類型聲明為void。函數(shù)體可以為空,即“空函數(shù)。此函數(shù)不作任何工作,沒有任何實際作業(yè)??上日嘉?,再補充幾種典型的例如:1213函數(shù)的類型和返回值函數(shù)的返回值類型應當屬于某個確定的類型。如果在定義函數(shù)時不指定函數(shù)類型,系統(tǒng)會隱含指定函數(shù)類型為int,函數(shù)結束也需返回一個int型值。函數(shù)的返回值由 return 語句給出。 return表達式; 或 return 表達式;如果函數(shù)沒有返回值,函數(shù)名前的類型標識符為void,return

7、語句可省略不寫。 如果return中的值與函數(shù)值的類型不一致,那么以函數(shù)類型為準。即在返回時先作隱含的類型轉(zhuǎn)換,然后再返回。/ 3.5 被轉(zhuǎn)換成 3 后返回給主函數(shù) 14例4-3,編寫一個函數(shù)用于獲取三個整數(shù)的最大值。15二、函數(shù)的調(diào)用函數(shù)的調(diào)用一般格式: 函數(shù)名 實參列表; 實參列表中的參數(shù)應與函數(shù)原型中形參的個數(shù)相同、類型相符 一一對應。 主調(diào)函數(shù)向被調(diào)函數(shù)以值傳遞的方式傳遞。1617 函數(shù)調(diào)用的執(zhí)行過程main( ) mul(10,5)調(diào) mul(10,5) 返回 結束保存:返回地址當前現(xiàn)場恢復:主調(diào)程序現(xiàn)場返回地址18函數(shù)調(diào)用的方式 函數(shù)調(diào)用可以作為一條語句出現(xiàn),這時函數(shù)可以沒有返回值

8、。PrintLine();函數(shù)調(diào)用也可以出現(xiàn)在表達式中,這時必須有一個明確的返回值。a=mul(10,5);printf(%dn, mul(a, b) );If( mul(m, n) total ) printf(Large);函數(shù)不能用在賦值語句的左邊。 mul(a, b) 15; 錯 19函數(shù)的嵌套調(diào)用 C語言 不允許函數(shù)嵌套定義,即:在函數(shù)定義中再定義一個函數(shù)是非法的。C語言的函數(shù)定義都是互相平行、獨立的。C語言可以嵌套調(diào)用函數(shù),即在調(diào)用函數(shù)的過程中,又調(diào)用另一個函數(shù)。main( ) 結束 return returnfun1( )調(diào)fun1( )fun( )調(diào)fun( )20例4-4,用

9、函數(shù)實現(xiàn)21三、函數(shù)的聲明函數(shù)原型 返回類型 函數(shù)名形式參數(shù)表;函數(shù)原型是一條程序語句,必須以分號結束。C程序中的所有函數(shù)在使用之前都必須聲明,即先聲明后使用。如果被調(diào)函數(shù)的定義出現(xiàn)在主調(diào)函數(shù)之前,可以不必聲明。函數(shù)原型聲明可在所有函數(shù)包括main之前。全局原型,該函數(shù)對程序中的所有函數(shù)都是可用的。函數(shù)原型聲明位于某函數(shù)定義之中。局部原型,該函數(shù)主要是被包含它們的函數(shù)使用。標準庫函數(shù)的函數(shù)原型都在頭文件中提供,可用 # include 包含這些原型文件。 函數(shù)原型和函數(shù)定義在返回類型、函數(shù)名和參數(shù)表上必須完全一致。 函數(shù)原型的參數(shù)表可不必包含參數(shù)名稱,而只要包含參數(shù)類型即可。例如: int m

10、ax(int, int,int); 等價于:int max(int a, int b,int c);22例4-5,隨機函數(shù)rand 和srand的使用rand(),返回一個0RAND_MAX(32767)之間的隨機整數(shù)。RAND_MAX和rand定義在頭文件中計算機產(chǎn)生的是一個偽隨機數(shù),即這個隨機數(shù)序列有一個長度,會出現(xiàn)重復用srand(int seed),其參數(shù)稱為隨機數(shù)序列種子。即不同的偽隨機數(shù)序列種子,可以得到不同的偽隨機數(shù)序列。一般采用系統(tǒng)時間作為隨機數(shù)序列種子,例如: srand(unsigned int) time(NULL);23244.3 函數(shù)的類型根據(jù)是否有參數(shù),是否有返回值

11、,可以將函數(shù)分為以下幾種類型:類型1:無參數(shù)、無返回值的函數(shù)。類型2:有參數(shù)、無返回值的函數(shù)。類型3:有參數(shù)、有返回值的函數(shù)。類型4:無參數(shù)、有返回值的函數(shù)。25一、無參數(shù)、無返回值的函數(shù)當函數(shù)沒有參數(shù)時,不用從調(diào)用函數(shù)接收任何數(shù)據(jù)。同樣,它也不返回值,調(diào)用函數(shù)不會從被調(diào)用函數(shù)中接收任何數(shù)據(jù)。 function1() . . function2() . . function2() . . . . . 控制控制無輸入無輸出26例4-6,請編寫一個含有多個函數(shù)的程序,這些函數(shù)之間不進行任何數(shù)據(jù)通信。2728二、有參數(shù)、無返回值的函數(shù)調(diào)用函數(shù)和被調(diào)用函數(shù)之間的數(shù)據(jù)通信情況: function1()

12、. . function2(a) . . function2(x) . . . . . 參數(shù)值無返回值29實參和形參在數(shù)量、類型和順序上必須匹配。實參的值被逐個賦給形參 main() . function1(a1, a2, a3, ., am) . function1(f1, f2, f3, ., fn) . . 函數(shù)調(diào)用被函數(shù)調(diào)用實參形參30必須保證函數(shù)調(diào)用有匹配的參數(shù)。實參形參,多余的實參將被丟棄;實參形參,未匹配的形參將被初始化為垃圾值;數(shù)據(jù)類型的任何不匹配情況都將導致傳遞垃圾值。形參必須是有效的變量名,而實參可以是變量名、表達式或常量實參到形參的傳遞實現(xiàn)的是值的傳遞。被調(diào)函數(shù)中發(fā)生的一

13、切不會影響到實參中的變量。例4-7,修改例4-6,使得在調(diào)用函數(shù)中包含參數(shù)。 void PrintLine(char ch); void value(float p, float r, int n);313233三、有參數(shù)、有返回值的函數(shù)為確保程序間更高的可移植性,函數(shù)編碼中往往不包含任何I/O操作。調(diào)用函數(shù)與被調(diào)用函數(shù)之間具有雙向通信。 function1() . . function2(a) . . function2(x) . . . . return(b); 參數(shù)值函數(shù)結果34例4-8,修改例4-7中的value函數(shù),使其能將計算的sum值返回給main函數(shù),由main函數(shù)按要求實現(xiàn)輸

14、出。同時擴展PrintLine函數(shù),可將顯示字符的長度作為參數(shù)傳遞。3536四、無參數(shù)但有一個返回值的函數(shù)例4-9,設計一個與getchar 類似的函數(shù)來獲取一個整數(shù)。374.4 函數(shù)調(diào)用時參數(shù)的傳遞在函數(shù)未被調(diào)用時,函數(shù)的形參并不占有實際的內(nèi)存空間,也沒有實際的值。 只有在函數(shù)被調(diào)用時才為形參分配存儲單元,并將實參與形參結合。 實參類型必須與形參相符。 函數(shù)的參數(shù)傳遞指的就是形參與實參結合的過程。一、值調(diào)用 傳值調(diào)用 直接將實參的值傳遞給形參。 單向傳遞。 形參的改變不會影響到實參。38例4-10,傳值調(diào)用,將兩個數(shù)的值換位。39執(zhí)行主函數(shù)中的函數(shù)調(diào)用語句:swap(x,y);11xa22y

15、b在swap 子函數(shù)中:1x2y1a2b1x2y1x2y2a2b2a1btemp = a;a = b;b = temp;1temp1x2y1temp1temp返回主函數(shù)后:40 例4-11,從鍵盤上輸入字符,要求輸入字符為0-9十個數(shù)字。41二、 數(shù)組作為函數(shù)參數(shù) 數(shù)組元素可以作為調(diào)用函數(shù)時的實參,用法同單個變量,是單向傳遞 數(shù)組名做函數(shù)的參數(shù)函數(shù)調(diào)用時只需傳遞數(shù)組名。 在函數(shù)定義中,形參的類型必須與實參數(shù)組的相同,數(shù)組的大小不必指定。 函數(shù)原型中的參數(shù)也必須定義為一個數(shù)組。 例4-12:調(diào)用一個函數(shù)求數(shù)組元素之和4243 在C語言中,數(shù)組名表示的是該數(shù)組的第一個元素的地址。 傳遞數(shù)組名時,實

16、際上是把數(shù)組的地址傳遞給被調(diào)用函數(shù)。這樣被調(diào)用函數(shù)中的數(shù)組就指向內(nèi)存中相同的數(shù)組了。因此,在被調(diào)函數(shù)中,對形參數(shù)組元素的任何修改都將反映到調(diào)用函數(shù)的原始數(shù)組(實參數(shù)組)中。 把參數(shù)的地址傳遞給函數(shù)稱為地址傳遞(pass by address)或指針傳遞。謹 記44例4-13, 請編寫一個程序,使用一個函數(shù)來把有10個整數(shù)元素的數(shù)組按升序排列4546例4-14:調(diào)用一個函數(shù)求二維數(shù)組元素的最大值47例4-15:矩陣乘法484950三、結構體作為函數(shù)的參數(shù)分別傳遞各個結構成員像普通變量一樣來處理;如果結構很大,該方法就變得難以控制,效率也不高。傳遞整個結構將整個結構的副本傳遞給被調(diào)函數(shù),函數(shù)對結構

17、成員的任何修改都不會影響實參。51例,編寫幾個對點和矩形操作的函數(shù)。定義點的結構類型定義矩形的結構類型521. 定義函數(shù)makepoint,它帶有兩個整型參數(shù),并返回一個point類型的結構532. addpoint函數(shù):將兩個點相加54注意要點:當函數(shù)的參數(shù)是一個結構類型時,主調(diào)、被調(diào)函數(shù)中相對應的實參、形參必須為相同的結構類型。當函數(shù)的返回值是一個結構時,必須將返回值賦給調(diào)用函數(shù)中的相同類型的結構變量。和其它類型的參數(shù)一樣,結構類型的參數(shù)也是通過“值傳遞的。例4-16,以將3個學生按成績由高到低排序為例55564.5 函數(shù)的遞歸調(diào)用函數(shù)可以直接或間接地調(diào)用自身,稱為遞歸調(diào)用。直接調(diào)用:間接

18、調(diào)用:void fun1(void) fun1( ); / 調(diào)用fun1自身 void fun1(void) fun2( ); void fun2(void) fun1( ); 57 遞歸的條件1須有完成函數(shù)任務的語句。2有一個確定是否能防止無限的遞歸調(diào)用的測試。3一個遞歸調(diào)用語句。該語句的參數(shù)應該逐漸逼近不滿足條件,以致最后斷絕遞歸。4先測試,后遞歸調(diào)用。#include void count(int val) / 遞歸函數(shù)可以沒有返回值 if (val 1) count(val -1); printf(ok:, val); / 顯示:“ok:整數(shù)值 printf(n);58例4-17,有5

19、個人坐在一起,問第5個人多少歲?他說比第4個人大2歲。問第4個人歲數(shù),他說比第3個人大2歲。問第3個人歲數(shù),他又說比第2個人大2歲。問第2個人歲數(shù),他說比第1個人大2歲。最后問第1個人,他說是10歲。請問第5個人多大?“推理age(5) = age(4) + 2age(4) = age(3) + 2age(3) = age(2) + 2age(2) = age(1) + 2age(1) = 1“總結 由此計算出各年齡59遞歸的過程:第一階段:回歸。第二階段:遞推。60例4-18, 計算n!以5!為例,求值過程:5!5*4*3*2*15*(4!)5!5 * 4!4 * 3!3 * 2!2 * 1

20、!1處理遞歸調(diào)用每個遞歸調(diào)用向調(diào)用者的返回值5!5 * 4!4 * 3!3 * 2!2 * 1!1返回1返回2!2返回3!6返回4!24返回5!120最后值120616263 例4-19:漢諾塔問題有三根針A ,B,C。A針上有n個盤子,盤子大小不等,大的在下,小的在上,如圖示。要求把這n個盤子從A針移到C針,在移動過程中可以借助B針,每次只允許移動一個盤子,且在移動過程中在三根針上都保持大盤在下,小盤在上。ABC將n個盤子從A針移到C針可以分解為下面三個步驟:1)將A上n-1個盤子移到B針上借助C針;2)把A針上剩下的一個盤子移到C針上;3)將n-1個盤子從B針移到C針上借助A針;6465遞

21、歸并不節(jié)省存儲器的開銷,因為遞歸調(diào)用過程中必須在某個地方維護一個存儲處理值的棧。遞歸的執(zhí)行速度并不快,但遞歸代碼比較緊湊,并且比相應的非遞歸代碼更易于編寫與理解。在描述樹等遞歸定義的數(shù)據(jù)結構時,使用遞歸尤其方便。664.6 局部變量和全局變量一、局部變量在函數(shù)內(nèi)部定義的變量,僅在該函數(shù)內(nèi)有效。 不同函數(shù)中可以使用相同名字的變量,互不干擾。 局部變量在定義時沒有明確的初始化值。 在函數(shù)開始運行時,局部變量在棧區(qū)中被分配空間,函數(shù)退出時,局部變量隨之消失。形式參數(shù)也是局部變量。例: void main( ) void func( ) int s; int s; 67二、全局變量 在任何函數(shù)之外定義

22、的變量,也稱為外部變量。 可以被本文件中其它函數(shù)所共用。它的有效范圍是從定義變量的位置開始一直到根源文件結束。 存放在內(nèi)存的全局數(shù)據(jù)區(qū)。 由編譯器建立,默認初始化為0。 int n=5; / 全局變量 void func( ) void main( ) int s; int m = n; n = s; 68說明全局變量的作用是增加了函數(shù)之間數(shù)據(jù)聯(lián)系的渠道。假設在一個函數(shù)中改變了全局變量的值,就能影響到其它函數(shù)。不成文的規(guī)定:全局變量的第一個字母用大寫表示。不在特別必要時,盡量不要使用全局變量全局變量在程序的全部執(zhí)行過程中都占用存儲單元。降低了函數(shù)的通用性。假設外部變量與其它文件的變量同名,移植

23、時就會出現(xiàn)問題,降低了程序的可靠性和通用性。降低程序的清晰性。一般要求把C程序中的函數(shù)做成一個封閉體,除了可以通過“實參形參的渠道與外界發(fā)生聯(lián)系外,沒有其它渠道移植性好,可讀性強。694.7 作用域與可見性作用域又稱作用范圍,它指的是標識符的有效范圍 可見性指的是標識符是否可以被引用。一、作用域分類函數(shù)原型作用域 是C 程序中最小的作用域 開始于函數(shù)原型聲明的左括號,結束于函數(shù)原型聲明的右括號。 double area ( double width, double length);70塊作用域局部作用域 塊是一對大括號括起來的一段程序 塊語句 在塊中聲明的標識符,其作用域從聲明處開始,一直到塊

24、結束的大括號為止。 具有塊作用域的標識符稱作局部標識符。void fun( int y ) / y 的作用域從此開始 int a,b; / a, b的作用域從此開始 if ( y0 ) int x; / x 的作用域從此開始 x = a + b; / x 的作用域到此結束 / a, b, y 的作用域到此結束 71void fun( int n) if( n5) int i; i=n; printf(%dn, i); else double i; i=n; printf(%fn, i); printf(%dn, i); / int i 的作用域從此開始/ int i 的作用域到此結束/ dou

25、ble i 的作用域從此開始/ double i 的作用域到此結束/ error! i 無定義72文件作用域全局作用域 在所有函數(shù)定義之外說明; 開始于聲明點,結束于文件尾(全局變量。 在頭文件的文件作用域中所進行的聲明,假設該頭文件被一個源文件嵌入,那么聲明的作用域也擴展到該源文件中,直到源文件結束。int number;int value; void main( ) a = 1; / error! a 無定義 number = 0; value = number + 1; printf(“%dn, i); int a;73二、可見性 程序運行到某一點,能夠引用到的標識符,就是該處可見的標識

26、符。 作用域可見性的一般規(guī)那么: 標識符要聲明在前,引用在后。 在同一作用域中,不能聲明同名的標識符。 在沒有互相包含關系的不同的作用域中聲明的同名標識符互不影響。 如果在兩個或多個具有包含關系的作用域中聲明了同名標識符,那么外層標識符在內(nèi)層不可見。74例4-20,作用域可見性實例175例4-21,作用域可見性實例2764.8 變量的存儲類型一、動態(tài)存儲方式與靜態(tài)存儲方式程序的內(nèi)存區(qū)域:靜態(tài)存儲方式:在程序的運行期間分配固定的存儲空間動態(tài)存儲方式:在程序的運行期間根據(jù)需要進行動態(tài)的分配存儲空間。 程序內(nèi)存空間 代碼區(qū)(code area)全局數(shù)據(jù)區(qū)(data area) 堆區(qū)(heap are

27、a) 棧區(qū)(stack area)存放程序的代碼全局數(shù)據(jù)和靜態(tài)數(shù)據(jù)程序的動態(tài)數(shù)據(jù)程序的局部數(shù)據(jù)77動態(tài)存儲區(qū)存放的數(shù)據(jù)有:函數(shù)的形式參數(shù)自動變量函數(shù)調(diào)用時的現(xiàn)場保護和返回地址在程序執(zhí)行過程中,如果在同一個程序中兩次調(diào)用同一函數(shù),分配給此函數(shù)中局部變量的存儲空間地址可能是不相同的。C語言中,變量和函數(shù)的屬性除了具有數(shù)據(jù)類型外,還具有存儲類型: auto自動的:采用堆棧方式分配內(nèi)存空間,屬于暫時性存儲,其存儲空間可以被假設干變量屢次覆蓋使用。 static靜態(tài)的:在內(nèi)存中是以固定地址存放的,在整個程序運行期間都有效。 register存放器的:存放在通用存放器中。 extern外部的:在所有函數(shù)和

28、程序段中都可引用。78二、auto變量函數(shù)的形參、其中定義的局部變量等,如不專門聲明為static,都是動態(tài)地分配存儲空間的,數(shù)據(jù)存儲在動態(tài)存儲區(qū)中。 自動變量“auto關鍵字可以省略。假設在定義變量時不寫auto,那么隱含確定為“自動存儲類型。程序中大多數(shù)變量屬于自動變量。auto int a=3, b; int a=3, b; 等價79三、用static聲明局部變量靜態(tài)局部變量,在靜態(tài)存儲區(qū)內(nèi)分配存儲單元。變量在程序的整個運行期間都不釋放。 static int i; static char bufBUFSIZE; 靜態(tài)存儲變量,假設無顯式初始化,那么在程序編譯時自動初始化為 0。即只初始

29、化一次,以后每次調(diào)用函數(shù)時不再重新賦初值,而只是保存上次函數(shù)調(diào)用結束時的值。雖然靜態(tài)局部變量在函數(shù)調(diào)用結束后仍然存在,但其它函數(shù)是不能引用它的。80例4-22,靜態(tài)存儲變量舉例81第n次調(diào)用調(diào)用時初值調(diào)用結束時的值bcbca+b+c第1次第2次第3次000345111456891082四、register變量局部變量的值直接存放在CPU中的存放器中。只有局部自動變量和形式參數(shù)可以作為存放器變量,其它如全局變量、局部靜態(tài)變量不行。 register int x; register char c; f(register unsigned m, register long n) register int I; register static int a, b; 錯!一個計算機系統(tǒng)中的存放器數(shù)目是有限的,不能定義任意多個存放器變量。83五、外部變量即全局變量,是在函數(shù)的外部定義的,它的作用域為從變量的定義處開始,到本程序文件的末尾。在此作用域中,全局變量

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論