《c和指针》笔记5
遞歸
C通過運行時堆棧支持遞歸函數。的哦貴函數就是直接或間接調用自身的函數。
遞歸函數所需要的2個特性:
1、存在限制條件,當符合這個條件時遞歸便不再繼續。
2、每次調用之后越來越接近這個限制條件。
遞歸函數在實現方面更加接近問題的抽象定義,也更加清晰,然而在運行時的開銷卻是非常巨大的。
因此在某些情況下應該考慮用迭代來替代遞歸,使用遞歸的時候要慎重考慮。對于開銷以及代碼實現的清晰度上的抉擇要慎重。
可變參數
可變參數與C#的params很相似,但是C中是以省略號(...)來表示的,不同的地方是:
1、C中的可變參數必須從頭到尾按順序逐個訪問。
2、可變參數沒有原型,所以所有作為可變參數傳遞給函數的值都將執行缺省(默認)參數類型提升。
3、va_arg無法正確識別作用域參數之上的缺省類型提升,在調用的時候容易制定錯誤的類型,導致一些無法預測的錯誤。
4、需要指定可變參數的長度變量。
?
*由于char、short、float類型實際上是以int或double類型的值傳遞給函數,所以在va_arg中使用后面這些類型時應該小心。
?
今天的學習筆記就到這里,明天繼續,加油!
轉載于:https://www.cnblogs.com/ahl5esoft/archive/2012/06/19/2554220.html
總結
- 上一篇: 阿姨洗铁路是什么歌?
- 下一篇: AS3版本的MaxRects算法测试