引用

  • 就像人的别名,人不能只有别名,变量也不能只有引用。
  • 指针类型的引用:*&指针引用名 = 指针。
  • int a = 10;int *p =&a;int *&q =p1

    const

  • const定义常量,无法更改。
  • const定义指针时const int *p = NULLint 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++函数新特性

  1. 函数参数默认值:定义函数时,参数可以有默认值,如void fun(int i,int j = 5,int k =10);

    • 但需要注意,默认值必须在参数表的最右端,如void fun(int i;int j = 5, int k)是错误的。
    • 没有实参输入时,使用默认值,否则使用实参覆盖默认值。
  2. 函数重载:相同作用域内,用同一函数名定义的多个函数,或者参数个数参数类型不同的函数。
    • int getMax(int x, int y, int z){//to do}int get Max (double x, double y)相互重载。
    • 重载的好处:让计算机代替我我们决定应该使用哪个函数,提高编码效率。
  3. 内联函数:编译时将函数体代码和实参代替函数调用语句。可以为函数调用节省很多时间,特别是循环调用。关键字:inline
    • 内联函数是建议性的,由编译器决定。
    • 逻辑简单,调用频繁的函数建议使用内联。
    • 递归函数无法使用内联方式。

      内存管理

  • 内存的本质:资源
  • 操作系统掌管内存资源
  • 内存管理的意义:向操作系统申请/归还内存
  • 申请内存:int *p = new int;
  • 释放内存 delete p;
  • 申请和释放块内存int *arr = new int[10];申请块内存delete []arr;//释放块内存
  • 申请内存注意事项:有可能出现申请失败的情况需要再申请时考虑到`int *p = new int [1000];if(NULL == p){//内存分配失败}
  • 释放内存注意事项:要根据单个内存与块内存进行匹配,delete pdelete []p各自对应,还需要将指针置空p = NULL;。如果没有收回指针,如果将一块内存重复回收,计算机就会出现异常。

C++自学随笔(2)的更多相关文章

  1. UE4自学随笔(一)

    本文及后续均为个人学习记录所用,难免毫无章法零零碎碎,希望看到此文的诸君勿怪. 一.Actor与Pawn Actor类 在UE4中,Actor类是可以放到游戏场景中的游戏对象的基本类型.你如果想放置任 ...

  2. C++自学随笔

    主要学习内容: 了解了IDE环境的含义 C++与C的区别: 新的数据类型:bool型 新的初始化方法:直接初始化int x(1024) 经过查找,了解了直接初始化与复制初始化的区别:"当用于 ...

  3. Mybatis环境搭建:自学随笔

    环境:IDEA  MySQL 1.建立maven工程,导入坐标:编辑pom.xml,建立mybatis约束. 在https://mybatis.org/mybatis-3/zh/getting-sta ...

  4. 自学python3随笔--连接数据库和写EXCEL文件实现

    近日在自学python3,选择python,是由于它命令比较简单,语法也不算复杂,对我来说,要实现的功能用100行语句就能够实现.另外,一个原因,它是脚本形式的,调试比较方便,对我这些有很长时间没有写 ...

  5. 第三次作业随笔(new)包含了补作业

    第三次作业的题目:http://www.cnblogs.com/fzuoop/p/5187275.html 第一次看到题目的时候觉得应该是挺简单的,只要把输入的那一串东西挨个判断,用数列的方法,如果碰 ...

  6. 第二次作业----自学c++的选择与计划

    1.选择慕课网进行学习的原因 由于本来寒假是打算学习java的(如上篇随笔所言),所以向之前已经自学的同学问如何找教学视频,他就向我推荐了慕课网,在看了几集java的教学视频之后觉得慕课网挺好用的,所 ...

  7. 2017年2月22日-----------乱码新手自学.net 之Entity Framework 增删改

    由于我是自学的,没有人教,在网上查资料也查不到个所以然.问大神们也是爱理不理的. 所以这篇随笔纯粹源自于我自己的认识.是否真正正确我也没有把握. 如果有什么错误,请大神们给予指正 ========== ...

  8. NO.3:自学tensorflow之路------MNIST识别,神经网络拓展

    引言 最近自学GRU神经网络,感觉真的不简单.为了能够快速跑完程序,给我的渣渣笔记本(GT650M)也安装了一个GPU版的tensorflow.顺便也更新了版本到了tensorflow-gpu 1.7 ...

  9. 【.net开发者自学java系列】使用Eclipse开发SpringMVC(3)

    [.net开发者自学java系列]使用Eclipse开发SpringMVC(3) 标签(空格分隔): Spring RESTful 很久没继续学习java的spring了.接下来继续 回忆一下上个随笔 ...

随机推荐

  1. ios开发UI篇--UIStepper

    概述 UIStepper用于增加或减少值的控件. 属性和方法 初始化方法 UIStepper *stepper = [[UIStepper alloc] initWithFrame:CGRectMak ...

  2. #leetcode刷题之路36-有效的数独

    判断一个 9x9 的数独是否有效.只需要根据以下规则,验证已经填入的数字是否有效即可.数字 1-9 在每一行只能出现一次.数字 1-9 在每一列只能出现一次.数字 1-9 在每一个以粗实线分隔的 3x ...

  3. python3通过纯真IP数据库查询IP归属地信息

    在网上看到的别人写的python2的代码,修改成了python3. 把纯真IP数据库文件qqwry.dat放到czip.py同一目录下. #! /usr/bin/env python # -*- co ...

  4. Linux | GCC如何实现代码编译&&汇编&&链接过程

      正文: 每次我们程序员所写的 代码 是给程序员看的呢?还是给电脑看的?其实我们所写的代码只是我们程序员之间交流的一样特殊语言,电脑是看不懂的.那么我们如何实现人机交流呢?这就不得不请出我们我们今天 ...

  5. 2017-2018-1 20155210 《信息安全系统设计基础》 实现mypwd

    2017-2018-1 20155210 <信息安全系统设计基础> 实现mypwd 作业要求: 1.学习pwd命令 2.研究pwd实现需要的系统调用(man -k; grep),写出伪代码 ...

  6. vue打包完样式冲突

    在页面的<style> 后,加上scoped, 例: scoped是实现样式的私有化,使样式不容易被覆盖,不容易被修改,只对当前页面有效

  7. 最新版CocoaPods的安装和使用以及版本升级遇到的问题

    CocoaPods的下载及安装 mac系统已经默认安装好Ruby环境,如果你不确定自己系统中是否有Ruby的,可以在终端中输入命令行:ruby -v查看当前ruby版本.如图:  确定以后,接下来就可 ...

  8. request不能接受前端传来的参数的问题

    这是因为设置了 disabled ,所以接收不到参数,只需要去掉disabled即可.

  9. oracle出现无法修改的异常记录

    oracle数据库(PLSQL登录器),修改时遇到无法修改以前的记录. 解决方法: 是因为session正在操作(有锁),出现的假象让你觉得执行了sql却无法显示出修改的数据. 一个操作用户未完成操作 ...

  10. 办公区公网Ip访问不到阿里云ECS

    办公区公网Ip访问不到阿里云ECS 工作中遇见这样的问题, Hadoop 部署在办公区内网, 而应用有些的数据在阿里云ECS主机中,现在hadoop 访问ECS 却访问不到ESC ,最终电话咨询阿里云 ...