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、递归函数不终止,结果?
程序将不断执行下去,而且递归函数调用将占用越来越多的栈空间,而栈空间有限,最终程序因栈溢出而崩溃。
最新文章
- .NET Web开发技术简单整理
- web设计页面跳转的方法
- liunx命令
- linux清理内存命令
- Mac: Jdk版本切换
- 用普通用户通过sudo进行启动tomcat时报如下异常
- HttpClient_用Apache HttpClient实现URL重定向
- 龙珠 超宇宙 [Dragon Ball Xenoverse]
- Linux安装IDA神器
- javascript中substring()、substr()、slice()的区别
- iOS学习之Object-C语言内存管理高级
- FIN_WAIT1 能持续多久?你知道吗
- PHP实现站点pv,uv统计(二)
- SCAU 1138 代码等式
- Activiti 工作流会签开发设计思路
- 惊人事实 z
- 简单学C——第一天
- 【java基础之jdk源码】Object
- [解决]RESTEASY003215: could not find writer for content-type text/html type: java.lang.String
- dos脚本