zoukankan      html  css  js  c++  java
  • 《c和指针》笔记5

    递归

      C通过运行时堆栈支持递归函数。的哦贵函数就是直接或间接调用自身的函数。

      递归函数所需要的2个特性:

        1、存在限制条件,当符合这个条件时递归便不再继续。

        2、每次调用之后越来越接近这个限制条件。

      递归函数在实现方面更加接近问题的抽象定义,也更加清晰,然而在运行时的开销却是非常巨大的。

      因此在某些情况下应该考虑用迭代来替代递归,使用递归的时候要慎重考虑。对于开销以及代码实现的清晰度上的抉择要慎重。

    可变参数

      可变参数与C#的params很相似,但是C中是以省略号(...)来表示的,不同的地方是:

        1、C中的可变参数必须从头到尾按顺序逐个访问。

        2、可变参数没有原型,所以所有作为可变参数传递给函数的值都将执行缺省(默认)参数类型提升。

        3、va_arg无法正确识别作用域参数之上的缺省类型提升,在调用的时候容易制定错误的类型,导致一些无法预测的错误。

        4、需要指定可变参数的长度变量。

      *由于char、short、float类型实际上是以int或double类型的值传递给函数,所以在va_arg中使用后面这些类型时应该小心。

      今天的学习笔记就到这里,明天继续,加油!

  • 相关阅读:
    asp.net项目发布网上-当前自定义错误设置禁止远程查看应用程序
    TortoiseSVN提交文件的时候卡死
    TortoiseSVN,排除不想提交文件的方法(转)
    VS2010 发布网站时文件丢失
    SQL SERVER2012秘钥
    QTP常用功能
    XAMPP和Bugfree详细教程
    模块
    匿名函数、函数递归与二分法、面向过程
    迭代器、生成式、生成器
  • 原文地址:https://www.cnblogs.com/ahl5esoft/p/2554220.html
Copyright © 2011-2022 走看看