「C語言簡單記」基於我之前學習過程當中作過的筆記、隨筆,特地整理了一下,只是簡單的記錄了一些比較重要的知識點,不會去深刻探究,面向的是一些有語言基礎的人查找閱讀,還請見諒,謝謝~~~算法
返回值類型 函數名(參數類型 形式參數1,參數類型 形式參數2,…) { 函數體 }
主要做用:
1.將一個經常使用的功能封裝起來,方便之後調用
2.提升代碼重用率函數
形參: 在定義函數時,函數名後面的小括號()中定義的變量稱爲形式參數,簡稱形參,形參必定是變量
形參變量只有在被調用時才分配內存單元,在調用結束時,即刻釋放所分配的內存單元。所以,形參只有在函數內部有效。函數調用結束返回主調函數後則不能再使用該形參變量。學習
實參: 在調用函數時傳入的值稱爲實際參數,簡稱實參,實參能夠是常量,變量,表達式code
注意點:遞歸
1) 返回值能夠和返回值類型不同,系統會對返回值進行自動類型轉換(隱式轉換) 2) 若是函數沒有返回值,那麼返回值類型就寫void 3) 函數名稱不能相同,形參,返回值類型不一樣也不行,即不能重載 4) c語言不容許函數嵌套 5) 函數能夠沒有返回值類型,默認返回int類型 6) 調用函數時傳遞的實參個數必須和函數的形參個數必須保持一致
return 0: 返回0表示程序正確結束,其餘值表明程序非正常結束內存
argc: 系統傳遞進來的參數,默認爲1開發
argv: 系統傳遞進來的參數的實際值,默認是程序的名稱博客
需求:要求用戶輸入一個大於0的數,如何不大於0一值提示,知道大於0爲止 #include <stdio.h> void scanNumber(); int main(int argc, const char * argv[]) { scanNumber(); return 0; } void scanNumber(){ // 接收值 printf("請輸入一個大於0的數字:\n"); int number = -1; scanf("%d", &number); // 判斷 if (number <= 0) { scanNumber(); }else{ printf("m=%d\n", number); } // 遞歸要有明確的結束條件,防止死循環 }
用遞歸算法求累加和、累乘io
#include <stdio.h> int sum(int a); // 求累加和 int mul(int b);// 求累乘 int main(){ // 接收值 printf("請輸入一個大於0的數字:\n"); int number = -1; scanf("%d", &number); printf("sum = %d\n", sum(number)); printf("mul = %d\n", mul(number)); return 0; } int sum(int a){ int result = 1; if(a == 1){ return result; }else{ return sum(a-1) + a; } } int mul(int b){ int result = 1; if(b == 1){ return result; }else{ return uml(b-1) * b; } }
答: 函數的嵌套是語言特性,遞歸是邏輯思想; 函數嵌套就是容許函數中調用另外一個函數, 遞歸經過函數嵌套來實現,本身調用本身, 總的來講,函數嵌套就是函數調用函數,遞歸就是函數調用本身,是函數嵌套的一個特例
更多關於iOS學習開發的文章請登錄個人我的博客www.zhunjiee.com,歡迎前來參觀學習class