學習筆記之——C語言 函數( 三 )


3、  由于編譯過程是從上到下 。那么函數的編寫在被引用點前的話,在引用的函數里不需要聲明出來 。在引用點后面編寫的函數,在引用的函數里要聲明 。
函數的聲明方法:形式與函數名一致,后面要求加分號 。
4、  當沒有返回值的時候(return為0),函數要指定為viod類型 。有返回值的時候 , 函數類型為返回值類型 。這樣的定義,有助于在調用層函數里把這個函數可以作為一個變量使用 。一個函數只能帶回一個返回值 。
5、  定義函數: 類型名   函數名(形參列表){   }
6、  聲明函數:類型名   函數名(形參列表){   };
7、  在函數的最后位置對函數返回值進行限制 。
限制語句為 return (返回變量名),或者簡寫為return 變量名;
8、  函數在被調用的時候,可以當作一個本函數里的變量看待,調用方法和使用一個變量一樣 。譚浩強教程中給出3種調用方式:單獨一個語句printf_star;   函數表達式c=max(x,y);    作為函數的參數printf(“%d”,max(a,b);
9、  函數在被調用的時候,實參的列表順序和數據類型和形參一致 。
這一條里面有兩個問題沒有搞懂:
1) 聲明函數的時候,形參可以不寫參數名 。比如void print(int,float,char);是合法的 , 那么在函數里怎么判斷該調用那個參數了呢?(解決:在需要調用函數的程序里 , 聲明函數只是給函數預留出足夠用的內存 , 所以可以不用寫參數名 , 但是在編程過程中 , 形參位置一定要寫參數名 。)
2) 存在調用函數可以少寫參數的情況 。比如主函數main在規定里是帶有兩個參數的,平時可以不寫 。根據要求必須一一對應,那么如何處理調用過程中參數缺省情況呢?
10、      函數可以調用其他函數,稱為嵌套調用 。
函數可以直接或者間接的調用函數本身,稱為遞歸調用 。遞歸調用的時候要注意設置結束條件 。
11、      調用函數的過程,其實是一個把實參傳遞給形參,函數再返回一個值的過程 。調用的過程中,單個的數值(包括單個變量和數組元素)被傳遞給函數

推薦閱讀