C/C++基础知识总结——函数
1. 随机函数的使用
1.1 头文件: # include <cstdlib> 或 # include <stdlib.h>
1.2 用法
srand(int seed);//伪随机,传随机种子
int d = 1 + rand()%6;//生成1-6随机数
2. 函数的参数传递
2.1 函数未被调用时,函数的形参不占有内存空间,也没有实际的值。只有在函数被调用时才为形参分配存储单元,并将形参与实参结合
2.2 值传递
(1) 值传递是发生函数调用时,为形参分配空间,并用实参来初始化形参。一旦形参获得值,与实参再无关系,不会影响到实参
2.3 引用传递
(1) 引用是一种特殊类型的变量,可以被认为是另一个变量的别名,内存空间是一样的
(2) 声明一个引用时,必须初始化,使他指向一个已经存在的对象
int i;
int &r1 = i;
(3) 一旦一个引用被初始化后不能改为指向其他对象
(4) 应用可以作为形参,在调用函数时对形参进行初始化,这样形参就成为实参的一个别名,对形参的操作影响实参。
2.4 地址(指针)传递
3. 内联函数
3.1 对于一些功能简单,规模较小的函数,且经常重复使用的函数,可以设计为内联函数
3.2 内联函数不是在调用时发生转移而是在编译的时候将函数体嵌入在调用处
3.3 用法
(1) inline 类型说明符 函数名(形参)
{
语句;
}
3.4 与宏定义的区别
(1)内联函数和普通函数相比可以加快程序运行速度,因为不需要中断调用,在编译的时候可以直接镶嵌到目标代码中。宏只是一个简单的替换
(2)内联函数需要做类型检查,这是内联函数跟宏相比的优势
(3)inline是指嵌入代码,在调用函数的时候不是跳转,而是直接把代码写到那里去。对于短小代码来说,inline可以带来一定效率的提升,而且和宏相比, inline更安全。但是以消耗空间为代价的。宏是在代码处不加任何验证的简单替代,宏不是函数。inline是函数,但在编译中不产生代码,而是将有关代 码嵌入到调用处
(4)宏在C语言中非常重要,在C++中就没那么重要了。宏的第一条规则是:绝不应该使用它,除非必须这么做。几乎每个宏都表明了程序设计语言里、 程序里或者程序员的一个缺陷,因为它将在编译器看到程序正文之前重新摆布这些正文。
4. 带默认参数的形参
4.1 有默认值的形参必须在参数表最后,这个比较好理解
4.2 在相同的作用域里,不允许在同一个函数的多个声明中对同一个参数的默认值重复定义,即使前后定义的值相同也不行
int add(int x = 5; int y = 6);//声明时可以默认值,同作用域的其他声明不能有
int main()
{
add();
return 0;
}
int add(int x /* = 5 */, int y /* = 6 */) //定义时不能有默认值
{
//这里不能再出现默认形参,但为了清晰,可以通过注释来说明
return x +y;
}
C/C++基础知识总结——函数的更多相关文章
- php面试笔记(5)-php基础知识-自定义函数及内部函数考点
本文是根据慕课网Jason老师的课程进行的PHP面试知识点总结和升华,如有侵权请联系我进行删除,email:guoyugygy@163.com 在面试中,考官往往喜欢基础扎实的面试者,而函数相关的考点 ...
- [C/C++基础知识] main函数的参数argc和argv
该篇文章主要是关于C++\C语言最基础的main函数的参数知识,是学习C++或C语言都必备的知识点.不知道你是否知道该知识?希望对大家有所帮助.一.main()函数参数通常我们在写主函数时都是void ...
- swift 学习(二)基础知识 (函数,闭包,ARC,柯里化,反射)
函数 func x(a:Int, b:Int) {} func x(a:Int, b:Int) -> Void {} func x(a:Int, b:Int) ->(Int,Int ...
- 初学者入门web前端:C#基础知识:函数
入行前端对函数的掌握程度有可能直接影响以后工作的效率,使用函数可以高效的编写编码,节省时间,所以我整理了C#中最基础的函数知识点,虽然我在学习中 遇到很多问题,但是只要能够解决这些问题,都是好的. 一 ...
- JavaScript基础知识(函数)
函数的基础 函数: 把实现相同功能的代码放到一个函数体中,当想实现这个功能时,直接执行这个函数即可:减少了的冗余:高内聚,低耦合--> 函数的封装: 函数:引用数据类型: var a = 10; ...
- PHP基础知识之函数
定义: <?phpclass foo-----定义类{ function do_foo()---类的方法 { echo "Doing foo."; ...
- php基础知识和函数
<?php /* echo "hello","aaaa"; //输出语法,可以输出多个字符串 print "world"; //可以输 ...
- php基础知识【函数】(1)数组array
一.排序 1.sort -- 从最低到最高排序,删除原有的键名,赋予新的键名[字母比数字高] 2.rsort -- 逆向排序(最高到最低),删除原有的键名,赋予新的键名[字母比数字高] 3.asort ...
- php基础知识【函数】(8)xml和变量函数
一.XML函数 参数类型 data --string,需要解析的数据集. parser --resource,一个指向要取得字节索引的 XML 解析器的引用. 1.创建和释放XMl解析器 ...
- php基础知识【函数】(7)url和ob函数
一.URl函数 1.urlencode -- 编码 URL 字符串 2.urldecode -- 解码已编码的 URL 字符串 3.rawurlencode -- 按照 RFC 1738 对 URL ...
随机推荐
- java保存获取Web内容的文件
package com.mkyong; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.F ...
- [Java] 一、对象的创建 & 销毁
*1.考虑静态工厂方法(static factory method)代替构造器?!优势?不足? 服务提供者架构: 1.服务接口(Service Interface) -- 提供者实现的: 2.提供者注 ...
- 【百度地图API】交你如何用百度地图搜索自己的数据!不需数据库!
原文:[百度地图API]交你如何用百度地图搜索自己的数据!不需数据库! 摘要: 我有一定的房产数据,还有银行数据.我想在百度地图上标注出来,并且能搜索到我这些数据. 可是百度的数据库上并没有我的数据. ...
- asp.net 操作XML
using System.Xml; using System.Data; using System.IO; string xmlpath = HttpRuntime.AppDomainAppPat ...
- 云server 性能测试web压力测试
前言:如今,云server主流.它已成为许多中小型企业的首选server,但是云server它是一个虚拟机.所以性能是一个大问题,从这里开始介绍云server性能测试,云webserver压力测试. ...
- .net4.5的弱事件
.net4.5的弱事件 没有伟大的愿望,就没有伟大的天才--Aaronyang的博客(www.ayjs.net)-www.8mi.me 1. 事件-我的讲法 老师常告诉我,事件是特殊的委托,为委托提供 ...
- web学习总结之布局
浅谈web布局中的“float”属性 对于刚学习web前端的同学,布局和排版都是一个难点.虽然我们能够通过各种调试实现我们希望得到的页面效果,但是如果不把其中的道理弄清楚的话,在下次布局的时候,也无法 ...
- 上海及周边地区产品技术创业QQ群:98905958
创业是一件骄傲的事,每一个行业里最棒人才都应该创业或參与创业或以一个创业者的心态进行职业远景规划: 创业是一件寻常的事,跟上班打工一样寻常,没有什么必须的前置条件才干够開始,也没有什么前置条件能保证我 ...
- 快速构建Windows 8风格应用9-竖直视图
原文:快速构建Windows 8风格应用9-竖直视图 本篇博文主要介绍竖直视图概览.关于竖直视图设计.如何构建竖直视图 竖直视图概览 Windows 8为了支持旋转的设备提供了竖屏视图,我们开发的应用 ...
- Lyx输入中文与代码高亮
如果您看了我的这个随笔:<OpenSUSE 13.2安装Texlive2014+Texmaker+Lyx> (一)LyX中文 打开Lyx直接新建开始使用,那么输入的中文会是编译失败的,疑? ...