函式(function) 通過實參(argument)初始 形參(parameter) 執行完函式體(function body) 返回(return value)乙個值。(或者不返回)
提供給大家乙個學習庫函式的**:
比如我們常用的
int main()
float f(int x)
int main()例1:
#include#includeint main()
arr陣列在經過strcat後變成了"hello world"
我們知道strlen讀取的長度是11(不懂為什麼可以按照我給的**去查strlen ,strcat的用法,裡面說的很到位)
例2:
#includeint max(int a,int b)
int main()
最後輸出是7(其實直接看誰最大就好了,不知道原理也沒事)
例3:
#includeint main()
我們從最內層開始看起:
printf("%d,43")它會輸出 43
printf函式會返回它列印的字元數 所以它返回 2
printf("%d",2);
這時列印 2 返回 1
printf("%d",1);
列印 1 返回 1
同理最外層會列印1
所以最總結果是:43211
總結一下:鏈式訪問需要關注函式的返回值
程式呼叫自身的程式設計技巧稱為遞迴( recursion)
1.存在限制條件,當滿足這個限制條件的時候,遞迴便不再繼續。
2.每次遞迴呼叫之後越來越接近這個限制條件
舉個例子:
求第 n 個斐波那契數列
先用陣列法
以我的經驗 普通的做法往往能給遞迴法找到規律
#includeint main();
int i = 0;
int n = 0;
arr[0] = 1;
arr[1] = 1;
printf("你想知道斐波那契而數列的第幾個數:\n");
scanf("%d",&n);
if(n==1 || n==2)
printf("第 %d 個斐波那鍥數列是 %d",n,1);//兩類情況分開討論一下
else
int main()
但是遞迴法做有的問題並不聰明==(比如這個問題)
因為如果給的n很大它會重複計算很多次,不斷呼叫意味著更大的空間。可能造成棧溢位(stack overflow)
所以下面這個做法也許是解決這一類問題的好做法
迭代法:
#includeint main()
printf("%d",thi);
}
----------本篇結尾----------
謝謝**,有什麼問題請指出!
C語言複習 四
字串是乙個以null結尾的字元陣列 字串的常見函式 strcpy s1,s2 複製s2到s1 strcat s1,s2 連線字串s2到s1的末尾 strlen s1 獲得s1的長度 strcmp s1,s2 如果s1 s2,返回0 如果s1s2,返回大於0 strchr s1,ch 返回乙個指標,指...
《C語言複習 函式》
一 函式 二 庫函式 三 自定義函式 四 函式呼叫 五 函式的宣告和定義 六 函式遞迴 函式是一組一起執行乙個任務的語句。每個 c 程式都至少有乙個函式,即主函式main 所有簡單的程式都可以定義其他額外的函式。您可以把 劃分到不同的函式中。如何劃分 到不同的函式中是由您來決定的,但在邏輯上,劃分通...
C語言基礎鞏固
基本資料型別 1 基本型別 c語言基本資料型別 char,int,float,double.c語言規定可以在基本資料關鍵字前面加上以下這些修飾符 signed,unsigned,short,long.來擴充套件基本資料型別的數值範圍,或提高基本資料型別的資料精度。c語言還有乙個特殊的資料型別 voi...