C語言------函數
1. C語言的庫函數是可以直接調用的,不需要提前聲明,因為系統幫我們聲明了。例如 printf函數
2. 在程序中編寫函數時,要先對函數進行聲明,再對函數進行定義。函數的聲明時讓編譯器知道函數的名稱、參數、返回值類型等信息。函數的定義讓編譯器知道函數的功能。
3. 如果將函數的定義放在調用函數之前,則不需要進行函數的聲明,此時函數的定義就包含了函數的聲明。
4.函數返回語句 return語句後面的括號是可以省略的,例如return 0 和return(0)是相同的。
5. 如果函數值得類型和return語句中表達式的值不一致,則以函數返回值得類型為準,數值型數據可以自動進行類轉換,即函數定義的返回值類型決定最終返回值的類型。
6.當數值作為函數的實參時,只傳遞數組的地址,而不是將整個數組賦值到函數中,當用數組名作為實參調用函數時,指向該數組的第一個元素的指針就被傳遞到函數中。
7.C語言中沒有任何下標的數組名其實就是一個指向該數組第一個元素的指針。例如 Int Count[10]是一個整型數組,其中的代碼沒有下標的數組名Count與指向第一個元素的指針*Count 是相同的。
8.在程序運行時,有時需要將必要的參數傳遞給主函數,主函數main的形式參數如下:main(int argc, char* argv[])。兩個特殊的內部形參argc和argv是用來接收命令行實參的,這是只有主函數main具有的參數。argc參數保存命令行的參數個數,是整型變量。這個參數的值至少是1,因為至少程序名是第一個參數。argv參數是一個指向字符指針數組的指針,這個數組中的每個元素都是指向命令行實參,所有命令行實參都是字符串,任何數組都必須由程序轉變為適當的格式。
9.函數的調用有三種方式:A. 函數語句的調用,最常用,例如:Display(); B. 函數表達式的調用,例如:iResult = iNum3*AddTwoNum(3,5);C. 函數參數調用,例如:iResult = AddTwoNum(10, AddTwoNum(3,5));
10.C語言不支持嵌套定義,但是支持嵌套調用。
11.C語言的函數都支持遞歸,也就是說,每個函數都可以直接或者間接地調用自己。所謂間接調用,就是在遞歸,函數調用的下層 函數中再調用自己。
12.遞歸之所以能夠實現,是因為函數的每個執行過程在棧中都有自己的形參和局部變量的副本,這些副本和該函數的其他執行過程不發生關系。
13.內部函數:即靜態函數,函數只能在這個函數所在的源文件中被使用。內部函數要在函數返回值前面加一個static
14.外部函數:可以被其他源文件調用的函數。外部函數要在函數返回值前面加一個extern。C語言在不指明函數時內部函數還是外部函數時默認是外部函數。
15.在一個函數內部定義的變量叫做局部變量。同時需要註意的是,在語句塊(如if語句塊)內聲明的變量僅在該語句塊內部起作用,當然也包括嵌套在其中的子語句塊。在C語言中 位於不同作用域的變量可以使用相同的標識符,即變量可以同名,如果內層作用域中定義的變量和已經聲明的某個外層作用域中的變量有相同的名稱,在內層中使用這個變量, 此時內層作用域中的變量會屏蔽外層作用域中的該變量,這就稱為局部變量的屏蔽作用。
16.全局變量:可以在程序中的任何位置進行訪問的變量。全局變量不屬於某個函數,而屬於整個源文件,但是如果外部文件要進行使用,則要用extern關鍵字進行引用修飾。
17.常用的關於數學的常用函數。
abs -------求整數的絕對值。
labs -------求長整數的絕對值。
fabs -------求浮點數的絕對值。
sin,cos,tan --------三角函數
isalpha -------檢測字母,如果參數是字母表中的字母(大寫或小寫),則返回非零,但是使用前需要包含頭文件 ctype.h
isdigit ------檢測數字,如果參數是數字的話返回非零值,否則返回零。但是使用前需要包含頭文件 ctype.h
isalnum ------檢測字母或者數字,如果參數是字母表中的一個字母或者是一個數字,則返回非零值,否則返回零。但是使用前需要包含頭文件 ctype.h
C語言------函數