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 ...
随机推荐
- 一些有用的javascript实例分析(二)
原文:一些有用的javascript实例分析(二) 5 求出数组中所有数字的和 window.onload = function () { var oBtn = document.getElement ...
- mysql_oracle_随机查询几条记录
数据库的随机查询SQL 1. Oracle,随机查询20条 select * from ( select * from 表名 order by dbms_random.value ) where ...
- 左右linuxserver自己主动重启过程监控和简单的解决方案
转载请注明出处:帘卷西风的专栏(http://blog.csdn.net/ljxfblog) 本周開始,新手游进行删档封測阶段,前两天表现还好,今天更新后出现几次宕机行为.比較影响玩家的測试和体验,我 ...
- Tomcat剖析(四):Tomcat默认连接器(1)
Tomcat剖析(四):Tomcat默认连接器(1) 1. Tomcat剖析(一):一个简单的Web服务器 2. Tomcat剖析(二):一个简单的Servlet服务器 3. Tomcat剖析(三): ...
- 虚拟WiFi
转载用WinForm写一个虚拟WiFi助手玩玩(附源码) 这早不是什么新鲜的东西了,同类软件已经有很多,但不是收费就是有广告,在学校的时候就想自已写一个了,但那时候啥也没学,对C的掌握程度也就是定 ...
- Android - JNI加入标准C++文件
JNI加入标准C++文件 本文地址: http://blog.csdn.net/caroline_wendy 其余參考: http://blog.csdn.net/caroline_wendy/art ...
- C++并发编程学习笔记<1> 入门
入门 多线程C++程序是什么样子的? 它看上去和其它全部C++程序一样,一般是变量.类以及函数的组合. 唯一真正的差别在于某些函数能够并发执行, 当然.为了并发地执行函数,必须使用特定的函数以及对象来 ...
- C# 之 托付
托付(delegate) 托付是一种能够把引用存储为函数的类型.托付也能够看成是一种数据类型,能够用于定义变量,但它是一种特殊的数据类型,它所定义的变量能接受的数值仅仅能是一个函数,更确切的说 ...
- 让Windows 8 / 8.1 以及 Windows Server 2012 / 2012 R2的任务管理器的性能面板,显示磁盘数据
运行[diskperf -y],关闭任务管理器,重新打开即可.
- 解决wps for linux 中文输入法光标不跟随的问题
需要安装qt4-qtconfig和ibus-qt4,安装ibus-qt4之后才能在qt4-qtconfig“界面”选项卡默认输入法选项中看到ibus,选定它,然后设置XIM输入风格为光标跟随风格,保存 ...