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、递归函数不终止,结果?

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

最新文章

  1. .NET Web开发技术简单整理
  2. web设计页面跳转的方法
  3. liunx命令
  4. linux清理内存命令
  5. Mac: Jdk版本切换
  6. 用普通用户通过sudo进行启动tomcat时报如下异常
  7. HttpClient_用Apache HttpClient实现URL重定向
  8. 龙珠 超宇宙 [Dragon Ball Xenoverse]
  9. Linux安装IDA神器
  10. javascript中substring()、substr()、slice()的区别
  11. iOS学习之Object-C语言内存管理高级
  12. FIN_WAIT1 能持续多久?你知道吗
  13. PHP实现站点pv,uv统计(二)
  14. SCAU 1138 代码等式
  15. Activiti 工作流会签开发设计思路
  16. 惊人事实 z
  17. 简单学C——第一天
  18. 【java基础之jdk源码】Object
  19. [解决]RESTEASY003215: could not find writer for content-type text/html type: java.lang.String
  20. dos脚本

热门文章

  1. HDU - 4407 Sum (容斥)
  2. iOS应用内付费(IAP)开发步骤
  3. cisco笔记
  4. 深入理解JVM3
  5. React Native混合开发中必须要学会点FlexBox布局
  6. 配置zabbix_server通过zabbix_proxy进行监控Host
  7. 网络性能监测工具smokeping
  8. 最牛技术 1秒启动Linux的窍门
  9. Spring_通过注解配置 Bean(2)
  10. PAT1076. Forwards on Weibo (30)