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中使用后面这些类型时应该小心。

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

  • 相关阅读:
    演示使用string对象(续)
    P2216 [HAOI2007]理想的正方形 单调队列
    SP1805 HISTOGRA
    P4556 [Vani有约会]雨天的尾巴 树链剖分 线段树合并
    codeforces 600E 线段树合并
    HDU2197 本原串
    P3806 【模板】点分治1
    牛客10 Popping Balloons
    P3261 [JLOI2015]城池攻占 左偏树
    P4549 【模板】裴蜀定理
  • 原文地址:https://www.cnblogs.com/ahl5esoft/p/2554220.html
Copyright © 2011-2022 走看看