本文目錄一覽:
在C語言中變數的作用域是什麼含義?
C程序的標識符作用域有三種:局部、全局、文件。標識符的作用域決定了程序中的哪些語句可以使用它,換句話說,就是標識符在程序其他部分的可見性。通常,標識符的作用域都是通過它在程序中的位置隱式說明的。
C語言函數定義域
作用域:起作用的區域
變數按作用域分:
局部變數:定義在函數內部的變數
全局變數 :定義在函數外部的變數
變數按存儲類型分
auto:自動類型
作用域決定變數的生命周期
注意點:如果局部變數和全局變數起衝突,局部變數此時會成瞎子,看不到全局變數的存在
函數遞歸
C語言函數三要素是什麼
C語言函數三要素是:定義域、值域和對應法則。
一,C語言函數定義域
(1)無參函數定義的一般形式如下:
類型標識符 函數名(){
聲明部分
語句
}
其中類型標識符和函數名稱為函數頭。類型標識符指明了本函數的類型,函數的類型實際上是函數返回值的類型。該類型標識符與前面介紹的各種說明符相同。函數名是由用戶定義的標識符,函數名後有一個空括弧,其中無參數,但括弧不可少。
{}中的內容稱為函數體。在函數體中聲明部分,是對函數體內部所用到的變數的類型說明。
在很多情況下都不要求無參函數有返回值,此時函數類型符可以寫為void。
這裡,只把main改為Hello作為函數名,其餘不變。Hello函數是一個無參函數,當被其它函數調用時,輸出Hello world字元串。
(2)有參函數定義的一般形式
有參函數定義的一般形式如下:
類型標識符 函數名(形式參數表列){
聲明部分
語句
}
有參函數比無參函數多了一個內容,即形式參數表列。在形參表中給出的參數稱為形式參數,它們可以是各種類型的變數,各參數之間用逗號間隔。在進行函數調用時,主調函數將賦予這些形式參數實際的值。形參既然是變數,必須在形參表中給出形參的類型說明。
例如,定義一個函數,用於求兩個數中的大數,可寫為:
第一行說明max函數是一個整型函數,其返回的函數值是一個整數。形參為a,b,均為整型量。a,b的具體值是由主調函數在調用時傳送過來的。在{}中的函數體內,除形參外沒有使用其它變數,因此只有語句而沒有聲明部分。在max函數體中的return語句是把a(或b)的值作為函數的值返回給主調函數。有返回值函數中至少應有一個return語句。
在C程序中,一個函數的定義可以放在任意位置,既可放在主函數main之前,也可放在main之後。例如:可把max 函數置在main之後,也可以把它放在main之前。修改後的程序如下所示。
二,C語言的值域
函數的值是指函數被調用之後, 執行函數體中的程序段所取得的並返回給主調函數的值。如調用正弦函數取得正弦值,調用例5.1的max函數取得的最大數等。對函數的值(或稱函數返回值)有以下一些說明:
1. 函數的值只能通過return語句返回主調函數。return 語句的一般形式為:
return 表達式;
或者為:
return (表達式);
該語句的功能是計算表達式的值,並返回給主調函數。 在函數中允許有多個return語句,但每次調用只能有一個return 語句被執行, 因此只能返回一個函數值。
2. 函數值的類型和函數定義中函數的類型應保持一致。 如果兩者不一致,則以函數類型為準,自動進行類型轉換。 3. 如函數值為整型,在函數定義時可以省去類型說明。
4. 不返回函數值的函數,可以明確定義為「空類型」, 類型說明符為「void」。如例5.3中函數s並不向主函數返函數值,因此可定義為:
void s(int n)
{ ……
}
三,C語言函數對應法則(C語言函數的調用)
函數調用的一般形式為:
函數名(實參列表);
實參可以是常數、變數、表達式等,多個實參用逗號,分隔。
在C語言中,函數調用的方式有多種,例如:
在函數調用中還應該注意的一個問題是求值順序的問題。所謂求值順序是指對實參列表中各個參數是自左向右使用呢,還是自右向左使用。對此,各系統的規定不一定相同。
【示例】在VC6.0下運行以下代碼。
運行結果:
8 7 6 7
可見VC 6.0是按照從右至左的順序求值。如果按照從左至右求值,結果應為:
9 10 9 8
函數的嵌套調用
函數不能嵌套定義,但可以嵌套調用,也就是在一個函數的定義中出現對另一個函數的調用。這樣就出現了函數的嵌套調用,即在被調函數中又調用其它函數。
【示例】計算sum = 1! + 2! + 3! + … + (n-1)! + n!
分析:可以編寫兩個函數,一個用來計算階乘,一個用來計算累加的和。
運行結果:
1!+2!+…+9!+10! = 1215752192
函數聲明和函數原型
C語言代碼由上到下依次執行,函數定義要出現在函數調用之前。
但是,如果在函數調用前進行了函數聲明,那麼函數定義就可以出現在任何地方了,甚至是其他文件。
函數聲明的一般形式為:
返回值類型 函數名( 類型 形參, 類型 形參… );
或為:
返回值類型 函數名( 類型, 類型…);
函數聲明給出了函數名、返回值類型、參數列表(參數類型)等與該函數有關的信息,稱為函數原型。
函數原型的作用是告訴編譯器與該函數有關的信息,讓編譯器知道函數的存在,以及存在的形式,即使函數暫時沒有定義,也不會出錯。
更改上面的代碼,將 factorial 和 sum 函數的定義放到 main 函數後面:
運行結果:
1!+2!+…+9!+10! = 1215752192
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/199510.html