C++自学随笔(2)
引用
- 就像人的别名,人不能只有别名,变量也不能只有引用。
- 指针类型的引用:*&指针引用名 = 指针。
如
int a = 10;int *p =&a;int *&q =p1const
- const定义常量,无法更改。
- const定义指针时
const int *p = NULL与int const *p = NULL等价,但与int * const p = NULL不同。 int x = 3; const int *p = &x; //p = &y;正确 //p = 4错误int x = 3; int *const p = &x; //p = &y;错误const int x = 3; const int *const p = &x; //p = &y;*p = 4 均错误int x = 3; const int &y = x; //x = 10;正确 // y = 20;错误C++函数新特性
- 函数参数默认值:定义函数时,参数可以有默认值,如
void fun(int i,int j = 5,int k =10);- 但需要注意,默认值必须在参数表的最右端,如
void fun(int i;int j = 5, int k)是错误的。 - 没有实参输入时,使用默认值,否则使用实参覆盖默认值。
- 但需要注意,默认值必须在参数表的最右端,如
- 函数重载:相同作用域内,用同一函数名定义的多个函数,或者参数个数和参数类型不同的函数。
- 如
int getMax(int x, int y, int z){//to do}和int get Max (double x, double y)相互重载。 - 重载的好处:让计算机代替我我们决定应该使用哪个函数,提高编码效率。
- 如
- 内联函数:编译时将函数体代码和实参代替函数调用语句。可以为函数调用节省很多时间,特别是循环调用。关键字:inline
- 内联函数是建议性的,由编译器决定。
- 逻辑简单,调用频繁的函数建议使用内联。
递归函数无法使用内联方式。
内存管理
- 内存的本质:资源
- 操作系统掌管内存资源
- 内存管理的意义:向操作系统申请/归还内存
- 申请内存:int *p = new int;
- 释放内存 delete p;
- 申请和释放块内存:
int *arr = new int[10];申请块内存,delete []arr;//释放块内存 - 申请内存注意事项:有可能出现申请失败的情况需要再申请时考虑到`int *p = new int [1000];if(NULL == p){//内存分配失败}
- 释放内存注意事项:要根据单个内存与块内存进行匹配,
delete p与delete []p各自对应,还需要将指针置空p = NULL;。如果没有收回指针,如果将一块内存重复回收,计算机就会出现异常。
C++自学随笔(2)的更多相关文章
- UE4自学随笔(一)
本文及后续均为个人学习记录所用,难免毫无章法零零碎碎,希望看到此文的诸君勿怪. 一.Actor与Pawn Actor类 在UE4中,Actor类是可以放到游戏场景中的游戏对象的基本类型.你如果想放置任 ...
- C++自学随笔
主要学习内容: 了解了IDE环境的含义 C++与C的区别: 新的数据类型:bool型 新的初始化方法:直接初始化int x(1024) 经过查找,了解了直接初始化与复制初始化的区别:"当用于 ...
- Mybatis环境搭建:自学随笔
环境:IDEA MySQL 1.建立maven工程,导入坐标:编辑pom.xml,建立mybatis约束. 在https://mybatis.org/mybatis-3/zh/getting-sta ...
- 自学python3随笔--连接数据库和写EXCEL文件实现
近日在自学python3,选择python,是由于它命令比较简单,语法也不算复杂,对我来说,要实现的功能用100行语句就能够实现.另外,一个原因,它是脚本形式的,调试比较方便,对我这些有很长时间没有写 ...
- 第三次作业随笔(new)包含了补作业
第三次作业的题目:http://www.cnblogs.com/fzuoop/p/5187275.html 第一次看到题目的时候觉得应该是挺简单的,只要把输入的那一串东西挨个判断,用数列的方法,如果碰 ...
- 第二次作业----自学c++的选择与计划
1.选择慕课网进行学习的原因 由于本来寒假是打算学习java的(如上篇随笔所言),所以向之前已经自学的同学问如何找教学视频,他就向我推荐了慕课网,在看了几集java的教学视频之后觉得慕课网挺好用的,所 ...
- 2017年2月22日-----------乱码新手自学.net 之Entity Framework 增删改
由于我是自学的,没有人教,在网上查资料也查不到个所以然.问大神们也是爱理不理的. 所以这篇随笔纯粹源自于我自己的认识.是否真正正确我也没有把握. 如果有什么错误,请大神们给予指正 ========== ...
- NO.3:自学tensorflow之路------MNIST识别,神经网络拓展
引言 最近自学GRU神经网络,感觉真的不简单.为了能够快速跑完程序,给我的渣渣笔记本(GT650M)也安装了一个GPU版的tensorflow.顺便也更新了版本到了tensorflow-gpu 1.7 ...
- 【.net开发者自学java系列】使用Eclipse开发SpringMVC(3)
[.net开发者自学java系列]使用Eclipse开发SpringMVC(3) 标签(空格分隔): Spring RESTful 很久没继续学习java的spring了.接下来继续 回忆一下上个随笔 ...
随机推荐
- “C++动态绑定”相关问题探讨
一.相关问题: 1. 基类.派生类的构造和析构顺序 2. 基类.派生类中virtual的取舍 二.测试代码: #include <iostream> class A { public: A ...
- hisi3559的usb无线网卡驱动(rtl8192cu)(一条龙服务:内核编译、驱动编译、iw等工具编译)
usb无线网卡驱动(rtl8192cu) 内核编译.驱动编译.iw等工具编译 (哈哈,如果有其他问题,麻烦留言:) 环境 板卡:hi3559av100(arm64) 交叉编译链:aarch64-hi ...
- Mongodb 常用语法
以下语法为在控制台使用的.假定有集合(相当于关系型数据库的库)qyxxcx,文档(相当于表)qyxx,jyzcjzs show dbs use qyxxcx db show collections d ...
- 最新的Veil3.0的安装和使用
首先安装 ┌─[root@sch01ar]─[~] └──╼ #cd /sch01ar/Veil/ ┌─[root@sch01ar]─[/sch01ar/Veil] └──╼ #cd setup/ ┌ ...
- [Oracle]ORA-01499的处理
如果出现 ORA-01499,说明 table 和 index之间的相互参照出了错: http://iderror.com/errors/oracle/oracle-db/ora-00900-to-o ...
- dos下edit编辑器的快捷命令一览
Home Move cursor to the beginning of the line currently on. End Move cursor to the end of the line c ...
- Python 10min系列之面试题解析丨Python实现tail -f功能
关于这道题,简单说一下我的想法吧.当然,也有很好用的 pyinotify 模块专门监听文件变化,不过我更想介绍的,是解决的思路. 毕竟作为面试官,还是想看到一下解决问题的思路,而且我觉得这一题的难点不 ...
- Async方法死锁的问题 Don't Block on Async Code(转)
今天调试requet.GetRequestStreamAsync异步方法出现不返回的问题,可能是死锁了.看到老外一篇文章解释了异步方法死锁的问题,懒的翻译,直接搬过来了. http://blog.st ...
- 【Python Learning第一篇】Linux命令学习及Vim命令的使用
学了两天,终于把基本命令学完了,掌握以后可以当半个程序员了♪(^∇^*) 此文是一篇备忘录或者查询笔记,如果哪位大佬看上了并且非常嫌弃的话,还请大佬不吝赐教,多多包涵 以下是我上课做的一些笔记,非常的 ...
- Jupyter安装及运行
一.安装(来自http://jupyter.org/install) Ctrl+Alt+T(Manjaro系统),打开控制台,su进入root权限 输入如下命令: python3 -m pip ins ...