• 21天学通C++_Day4


    0、迭代器

    昨天晚上3G移动通信实验的时候,需要写一些简单的C程序,用到for循环的时候,发现在不同的for循环中,若定义标识符相同的变量名时,会有报错,环境是VC6;

    可是一想到在for语句声明的迭代器的作用域为for循环,故产生疑惑?究竟是语法问题还是编译器问题?

    结果发现是编译器的问题:

    在VS2012中,声明相同名称的叠加器是被允许的,而在VC6中是不被允许的,会报错,如下图:

    ok,解决完了昨晚的遗留问题,开始今天的学习。

    1、带默认值的函数参数

    函数声明时:double Area(double InputRadius, double PI=3.14);

    函数调用时:Area(Radius, NewPI); or  Area(Radius);

    2、函数重载

    名称、返回参数相同,但参数不同的函数。在程序中,若需要使用不同参数调用具有特定名称和返回类型的函数时,函数重载很有用。

    例如:

    double Area(double Radius);

    double Area(double Radius,double Height);

    3、数组作为参数的函数

    void Display(int Numbers[], int Length);

    void Display(char Characters[], int Length);

    4、按引用传递参数

    我们都知道,函数调用时,实参把参数值传给了形参,即把实参的值拷贝给了形参,函数运行了以后,实参的值是不变的。

    但是,有时候,希望函数修改的值在函数外也可用,此时就可以把形参的类型声明为引用。

    void Area(double Radius, double& Result);

    5、内联函数

    使用inline关键字,要求将函数的内容直接放到调用它的地方,以提高代码的运行速度,避免函数调用的微处理器跳转开销,但这会使代码膨胀

    6、lambda函数

    暂时看不懂,后面再研究。

    7、递归函数不终止,结果?

    程序将不断执行下去,而且递归函数调用将占用越来越多的栈空间,而栈空间有限,最终程序因栈溢出而崩溃。

  • 相关阅读:
    javascript 自定义事件
    javascript 实现HashTable(哈希表)
    NHibernate输出SQL语句
    Asp.net MVC Comet推送
    MySQL 数据备份与还原
    Mysql -- 慢查询
    cookie 的HttpOnly 和 Secure 属性
    Ubuntu -- 反射shell nc
    docker 访问宿主机网络
    k8s 配置文件 详解
  • 原文地址:https://www.cnblogs.com/Big-Rabbit/p/4370068.html
Copyright © 2020-2023  润新知