標籤:number hello return 程式 知識
函數
函數是具有特定功能的代碼塊,函數使得程式更加模組化,這樣便於人們閱讀,修改,完善程式
1.函數的定義:
傳回值類型 函數名 (形式參數)
{
聲明
語句
}
無參函數舉例
void hello()//無參數無傳回值
{
printf(“Hello World");
}
int peopleCount()//無參數 有傳回值
{
return 33;
}
有參函數舉例
int max(int a, int b)//有參數有傳回值
{
return a > b ? a : b;
}
void printfNumber(int x)//有參數無傳回值
{
printf(“number is %d”, x);
}
函數注意事項:
傳回值類型:
函數的結果實值型別,函數不能返回數組.沒有其他的限制.
指定傳回型別是void類型說明函數沒有傳回值
函數名的命名規範:由單片語成,除了第一個單詞外,其餘單字首大寫
工程名的命名規範:由單片語成,並且每個單詞的首字母都要大寫(是單詞,不是拼音)
變數名的命名規範:由單片語成,除了第一個單詞外,其餘單字首大寫
每個形式參數的前面說明其類型,即使幾個參數具有相同的資料類型,也必須對每個形式參數分別進行類型說明.形式參數用逗號進行分隔,就算沒有參數函數後面的()也不能省略.
傳回值:
函數的傳回值成為函數的值,只能通過return語句返回給主調函數.
一個函數只能有一個傳回值
函數即使沒有傳回值也可以使用return來結束函數的執行,回到主調函數
return 後面的語句不再執行.
函數調用:
函數調用由函數名和跟隨其後的實際參數
函數的聲明:
嚴格的編寫大型程式事實上,可以把程式分割成任意數量的源檔案.
源檔案:xx.h標頭檔’xx.m源檔案
函式宣告寫在.h檔案裡
函數定義寫在.m源檔案裡
形參/實參
形式參數:出現在函數定義中,以假名字來表示函數調用時需要提供的值
實際參數:出現在函數調用運算式
函數調用中,形參會拷貝實參內容,傳遞參數是給函數傳遞資訊的一種方法
形式參數的作用是:
提前佔位,同時可以提高函數的通用性,而實際參數是真實資料,出現在函數調用的運算式中,在程式跳轉執行函數內部代碼時,形參會拷貝實參的內容.
注意:
實參傳遞給形參,是單向的值傳遞,是拷貝的過程
函數的嵌套
C語言不允許函數嵌套定義,但是允許函數嵌套調用
注意避免嵌套定義
數組作為參數
1.數組元素作為參數,與普通變數作為參數一樣,單向的值傳遞.
2.數組作為參數,把數組名作為實參傳入,數組名是數組的首地址
3.數組名作為參數時,形參和實參實際上是同一段記憶體空間.
數組作為參數時,是將數組名作為是實參,同時在函數執行其內部代碼時,形參拷貝的數組名是指向的同一個記憶體空間(數組的記憶體空間).
函數的遞迴調用
C語言允許實現函數實現體再次調用函數本身.這種調用方式成為遞迴調用,這個函數稱為遞迴函式
在電腦中階乘就可以使用遞迴調用.
注意:遞迴一定要有出口.
變數的範圍:
所謂變數的作業域指的是變數的有效範圍
定義在不同的位置,變數的範圍是不同的
外部變數(全域變數):檔案範圍,從變數被聲明的點開始一直到所在檔案的末尾.
跟隨在外部變數聲明之後的所有函數都可以訪問
局部變數:
快範圍,從變數被聲明的點開始一直到第一個大括弧的結尾
注意:
外部變數和局部變數可以重名,但是局部變數範圍只能訪問局部變數
本文出自 “經典排序冒泡排序” 部落格,請務必保留此出處http://summerios.blog.51cto.com/9167658/1530258
函數知識要點