第一章 数组

什么tm的,叫编译与链接?
堆:由程序员手动分配和释放,先进先出,若程序员不释放则程序结束时,系统释放。
栈:由编译器分配和释放

1.1 一维数组

  • 初始化:若只初始化部分元素的话,后面的元素就会初始化为0:int y[4] = {1}; y的值为{1, 0, 0, 0}
  • 当数组大小未知,声明格式如下: int* a=new int[n];使用完毕之后 delete []a;
  • 'A’是字符常量,“A”是字符串常量,字符串常量最后还有一个空字符null,所以要多一个字符;
  • 字符串遇到‘\0’就结束

1.2 二维数组

  • 低纬度的数组可以被省略:int array[ ] [3] = {0, 1, 2, 3, 4, 5, 6}
  • “逗号运算符”:假如a = ( b++, --c, d+3)则取最后一个表达式的值
  • 二维数组按照行优先连续读取存储,故元素在空间是连续分布的
  • 数组指针:int (*p)[10];由于[]的优先级高于 ’ *’ ,所以 (*p);且若int a[4][10]; 则该指针指向的是前十个元素,p+1则指向后十个元素,以此类推,这是由于二维数组按照行优先连续读取存储。

tips:当出现这个警告(内存泄露)的时候,是由于变量在不满足条件的时候,没有给变量赋值,会造成这样的警告。

1.3指针的运算
取地址运算符 &
& 是一元运算符,返回操作数的内存地址。例如,如果 var 是一个整型变量,则 &var 是它的地址。该运算符与其他一元运算符具有相同的优先级,在运算时它是从右向左顺序进行的。

*间接寻址运算符 **
第二个运算符是间接寻址运算符 ,它是 & 运算符的补充。 是一元运算符,返回操作数所指定地址的变量的值。

请看下面的实例,理解这两种运算符的用法。
合法的指针包括:指针的自增和自减,同类型指针的比较,同类型的两个指针相减

1.4线性表的顺序存储
线性表的顺序存储又称为顺序表,线性表是一种逻辑结构,表示元素之间一对一的相邻关系,而顺序表和链表是存储结构。(线性表的中的元素的位置顺序是从一开始的,而数组是从零开始的)


第二章 字符串

2.1字符串与子串、子序列

  • ‘0’在c/c++中会被转换为bool类型的false
  • while循环知道遇到字符串结尾的null字符才会退出

2.2标准库提供的字符串处理函数

  • strcmp 两个字符串自左向右逐个字符相比,知道出现不同的字符或者遇到‘\0’为止。

  • strcat(dest,src)将src接到dest后面
    debug有assert断言保护,就会崩溃,release中会删除assert

  • memcpy(1)可以辅助任何内容,字符串字符数组,结构体,类,strcpy仅限于字符串;(2)他会根据第三个参数来决定复制的长度

2.3字符串的实际应用


第三章 结构体、共用体与枚举

3.1结构体
结构体和数组的两大不同:(1)结构体中声明不同的数据类型,(2)相同的结构体变量可以相互赋值

class的成员发放默认是private,而struct的成员默认是public。

结构体在定义的时候是不占用内存的,只有在分配变量的时候才有分配空间

3.2共用体


第四章 运算符及其优先级

  • 前缀运算和后缀运算:以自增运算为例,++i是前缀,i++是后缀,++i表示去a的地址,然后增加他的内容,把值放到寄存器当中;i++表示去a的地址,拿他的值装入寄存器,然后增加内存中a的值;还有i++ 不能作为左值,而++i 可以

4.4位运算符
’ >>'左移反之右移 与之相关的是移位运算符

4.6 运算符优先级


第五章c预处理器、作用域、static、const以及内存管理

5.2 作用域

  • 全局变量即外部变量,属于一个源程序文件,作用域是整个源程序;局部变量可以屏蔽全局变量
  • 在同一个文件中,当局部变量屏蔽了全局变量,但是又想用全局变量的时候,可以用‘::’作用于操作符,或者用extern

5.3 static

  • 隐藏,对于函数,对其他源文件隐藏
  • 对于变量的话,可以起到默认初始化为0的作用,其实未初始化的变量也有这个作用了,因为未初始化的全局变量嘅未初始化的静态变量是存储在同一块区域中的—BSS段,内存中的所有字节的默认值都是0x00
  • 保持局部变量内容的持久,局部变量在退出函数的时候就会消失,但是静态局部变量始终都存着,他的生存期是整个源程序,其特点是只进行一次初始化且具有这样的记忆性。
  • 除了上述这三个特点之外,在类当中,static数据成员都是独立于类类型的对象而存在的,同时在数据成员必须在类定义体的外部定义,但是const static除外;静态成员函数无法访问属于类对象的非静态类数据成员,也无法访问非静态成员函数,他只能调用其余的金泰成员函数与访问静态数据成员

5.4 const
用const 来替代#define的值替换功能

  • 指向const的指针:使指针本身成为一个const指针,必须把标明的部分放在*的右边,形如const char * pppp是一个指针,并非const本身,他指向的东西是不能被改变的。

    5.5 内存的管理是释放


第六章 函数


第七章 指针与引用

一个有效的指针必然是三种状态中的一种:保存一个特定对象的地址;指向某个对象后面的另一个对象;0值。

  • viod* 指针
  • 指向指针的指针


7.2 引用


第八章 类


第九章 继承


第十章 分治法、动态规划与贪心算法


第十一章 链表


第十二章 栈与队列


第十三章 树


第十四章 图


第十五章 排序


第十六章 查找


杂七杂八的边角料:

参考资料:runoob

【C++】王道程序员面试宝典学习笔记相关推荐

  1. 程序员面试宝典学习笔记01

    2019年9月15日,开始了程序员求职路上的第一步--刷题+恶补基础.各种原因导致我一直想要开始却一直延后.现在开始不知道是不是晚了,但不试试一定是没希望的.作为一个学生,别的不敢说,学习能力绝对没问 ...

  2. 《程序员面试宝典》笔记一

    一.this指针 this是一个指针,时时刻刻指向实例本身,相当于静态成员函数的一个隐含参数,不占用对象的空间. this本质是一个函数参数,只是编译器隐藏起形式的,语法层面的参数. this只能在成 ...

  3. 金九银十北漂记第2篇:《Java程序员面试宝典》读书笔记

    尽信书,则不如无书.-–孟子 谈一谈这本书  <Java程序员面试宝典>是我接触的第一本讲解面试相关的书籍在看到这本书之前我就经常逛csdn的bbs,已经接触面试之类的知识.不过这本书还是 ...

  4. 程序员面试宝典笔记1-基本概念预处理,const与sizeof

    程序员面试宝典笔记1-基本概念&预处理,const与sizeof 基本概念 赋值语句: i++: 类型转换 运算符问题 a,b交换与比较 其他 预处理 const sizeof 基本概念 赋值 ...

  5. Java程序员面试宝典笔记记录(1~3章概括)

    文章目录 导言 求职前重要的两点 求职者注意的几个方面: 挑选offer考虑5点 后台开发人员面试需要补充和阅览的书籍 需备技能方面 需要阅读的书籍(针对Java) 结语 导言   本博文是对于何昊出 ...

  6. ASP.NET的几个试题(《C#与.NET程序员面试宝典》)

    更多参考:博客园笔记 面试题1:ASP.NET是什么 ASP.NET不是一种语言,而是创建动态Web页的一种强大的服务器端技术,它是Microsoft.NET Framework中一套用于生成Web应 ...

  7. java只会用不知道原理6_程序员面试宝典之14道初级Java面试题分享

    程序员面试宝典之14道初级Java面试题分享 程序员面试宝典之14道初级Java面试题分享! 关于赢在面试的Java题系列基本收集整理完成了,所有题目都是经过精心挑选的,很基础又考验求职者的基本功,应 ...

  8. Java程序员面试宝典

    第1部分  求职过程 古人云:凡事预则立,不预则废.机会都是垂青有准备的人的.为了得到一份满意的工作,大家一定要对整个求职过程有清醒的了解.把能够预见的.必须做的事情早一些做完,这样在大规模招聘开始的 ...

  9. 互联网校招程序员面试宝典如何复习

    程序员面试宝典 程序员面试宝典,是基础知识提炼结合笔试面试题的一本试题集.被称为是计算机专业同学找工作的宝典,几乎人手一册.这本书是基础课程知识点的浓缩,结合常考题目.是一本备考实战的书籍,同学们在第 ...

最新文章

  1. 互联网1分钟 |0104
  2. VS2017安装openGL
  3. C语言数理逻辑题目,数学逻辑推理题整理,看看你能答对多少
  4. flutter绘图基础之三阶贝塞尔曲线cubicTo
  5. SpringBoot整合redisson分布式锁
  6. 牛顿下山法c语言_数值计算(二十九)修正牛顿法I求解方程的根
  7. TCP/IP review之 静态路由
  8. 每天CookBook之Python-005
  9. [转载] Java static关键字详解
  10. 黑马程序员 Python学习笔记之PyCharm 的初始设置
  11. ML~线性代数~python
  12. 东南大学2014计算机考研真题,2014年东南大学920信号数电考研真题(回忆版)
  13. 模型预测控制的缺点_模型预测控制(MPC)与最优控制的理论分析 | NeurIPS 2020
  14. Java开发--implement Serializable
  15. poj 2632 Crashing Robots
  16. 关于递归删除链表结点时为什么不会出现断链问题
  17. NPDP第三章:新产品流程
  18. 漏洞分析丨HEVD-0x6.UninitializedStackVariable[win7x86]
  19. 保刚性图像变形算法-Siggraph 2004
  20. Linux力挺微博世

热门文章

  1. Crapapi管理平台的搭建
  2. PS入门视频教程【Java版本】-丁鹏-专题视频课程
  3. Office、VB和VBA有什么联系
  4. 华为新员工转正笔试题 笑喷了
  5. ffmpeg4教程2:采集桌面声音保存为pcm
  6. 深圳c语言程序设计,深圳零基础玩转C语言编程
  7. 机器视觉篇之相机标定
  8. MySQL_高级_笔记
  9. Ds918 ds3615 ds3617区别_Get与Post的区别?(面试官最想听到的答案)
  10. ICDM和KDD最新会议信息