淺談C語言中函式的使用
函式的定義
定義一個函式需要三個部分:
1.函式的返回值型別
2.函式的名稱
3.函式的引數
函式的宣告和呼叫
宣告的意思是告訴編譯器,這個函式的返回值型別、函式名和引數。我們在呼叫一個函式時,需要向這個函式傳其需要的引數,在函式呼叫時都會建立一個棧幀,通俗的講棧幀就是一塊空間,這塊用來存函式呼叫中需要的一些值,比如區域性變數,引數…,因此,在不同的函式中可以定義同名的變數。
在圖中main函式和IsLeapYear的棧幀中,雖然都有定義一個year的變數,並且兩個year的值是一樣的,但是它們的地址是不一樣的。
函式呼叫的二分查詢
int binarySearch(int* a, int n, int x)
{
int left = 0, right = x;
while (left <= right)
{
int mid = (left + right) / 2;
if (a[mid] == n)
{
return mid;
}
if (a[mid] > n)
{
right = mid - 1;
}
if (a[mid] < n)
{
left = mid + 1;
}
}
return -1;
}
int main()
{
int a[] = { 1, 4, 7, 9, 10 };
int x = sizeof(a) / sizeof(int);
int n;
int mid;
scanf("%d", &n);
if (binarySearch(a, n, x) == -1)
{
printf("找不到\n");
}
else
{
printf("找到了!\n");
}
return 0;
}
函式的前置宣告
編譯器呼叫函式和變數時,只會向上查詢,如果非要在下面定義一個函式,可以採用前置宣告,同時一個函式的結果可以是另一個函式的值。
void AddOne(int* pnum);
int main()
{
int num = 0;
AddOne(&num);
printf("%d\n", num);
return 0;
}
//每呼叫一次函式加一
void AddOne(int* pnum)
{
*pnum += 1;
}
相關文章
- C 語言中的 time 函式函式
- C語言中qsort函式的用法C語言函式
- C語言中函式printf()和函式scanf()的用法C語言函式
- C語言中函式的返回值C語言函式
- C語言中變參函式傳參探究C語言函式
- 解決vscode c語言中scanf函式的輸入問題VSCodeC語言函式
- 淺談Swift中的函式式Swift函式
- C語言巨集和函式淺析C語言函式
- C語言有關函式淺析C語言函式
- 淺談eval函式函式
- 淺談生成函式函式
- dart系列之:dart語言中的函式Dart函式
- C語言qsort函式的使用C語言函式
- 淺談Kotlin中的函式Kotlin函式
- 淺談尤拉函式函式
- C語言中抽象函式與具體實現的命名與組織C語言抽象函式
- C語言中的#和##C語言
- 淺談php count()函式方法PHP函式
- 淺談Kotlin語法篇之擴充套件函式(五)Kotlin套件函式
- C語言的函式C語言函式
- 在嵌入式C語言中使用結構的方法有哪些C語言
- 淺談js函式節流和函式防抖JS函式
- python語言中類和函式的作用及區別!Python函式
- C語言中關鍵字typedef、enum的使用C語言
- c語言快速排序(庫函式使用)C語言排序函式
- 淺談匿名函式和閉包函式
- 解析C語言中的sizeofC語言
- C語言中extern的用法C語言
- c語言中的作用域C語言
- 【C】 30_C語言中的字串C語言字串
- 初學者疑惑:C語言中,函式反覆呼叫會有什麼問題?C語言函式
- 淺談Kotlin語法篇之如何讓函式更好地呼叫(三)Kotlin函式
- C語言函式指標與回撥函式使用方法C語言函式指標
- c語言中的getchar()和EOFC語言
- C 語言中的 sscanf 詳解
- static在C語言中的作用C語言
- 淺談Numpy中的shape、reshape函式的區別函式
- C語言函式sscanf()的用法C語言函式