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

第一章 数组

什么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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 《C/C++程序员面试宝典》是一本针对C/C++程序员面试准备的宝典。这本书的作者通过总结面试过程中常见的问题和经验,帮助读者提高面试技巧和应对能力。 首先,本书中提供了大量的面试题目,内容涵盖了C/C++语言的各个方面,包括数据结构、算法、指针、内存管理、多线程等。通过学习这些题目,读者可以加深对C/C++的理解,提高解决问题的能力。 其次,本书还针对不同类型的面试问题提供了详细的解答思路和讲解。这些解答思路不仅能帮助读者快速解答面试问题,还能帮助读者理解背后的原理和思想,从而更好地运用到实际开发中。 此外,本书还提供了面试中常见的技术知识点总结,帮助读者快速复习和掌握重要的概念和原理。同时,还包含了一些实际项目中常见的问题和解决方案,帮助读者在面试中展示自己的项目经验和实际应用能力。 总的来说,《C/C++程序员面试宝典》适合那些准备进行C/C++相关职位面试的程序员。通过系统地学习和准备,可以提高面试的成功率,更好地展示自己的技术能力和经验。不仅如此,本书还能作为C/C++技术的参考手册,帮助读者巩固和扩展自己的技术知识。 ### 回答2: 《C/C++程序员面试宝典》是一本专门为C/C++程序员准备的面试指南,它以全面的面试题目和详细的解析为主要特点。本书涵盖了C/C++程序员面试的各个方面,包括算法、数据结构、操作系统、网络编程、面向对象设计等内容。 本书通过多种形式的面试题目,对C/C++程序员的技术能力和经验进行全面考察。每个面试题目都提供了详细的解答和分析,帮助读者深入理解问题的解决思路,提高解决问题的能力。此外,本书还包括常见的面试问题和解答,以及面试技巧和注意事项,帮助读者在面试中更加自信和准备充分。 《C/C++程序员面试宝典》还特别强调了面试中的编程能力和实践经验。它提供了大量的编程题目和代码示例,通过实际的编程练习,帮助读者提高编程水平。此外,本书还介绍了C/C++编程规范和最佳实践,帮助读者写出高质量的代码。 总之,《C/C++程序员面试宝典》是一本非常全面、实用的面试指南。无论你是准备面试,还是提高编程技能,本书都会给你提供很大的帮助。通过学习本书,你可以系统地掌握C/C++程序员面试的各个方面,提高自己的技术能力,从而在面试中取得更好的成绩。 ### 回答3: "C/C++程序员面试宝典" 是一本针对C/C++程序员面试所编写的指导手册。这本书的目的是帮助程序员准备面试时可能遇到的各种问题和考点,包括面试常见问题、算法和数据结构、编程知识和技巧以及系统设计等内容。 这本宝典可以帮助准备面试的程序员了解面试官可能关注的重点和考察的方向。通过学习这本书,程序员可以更好地了解C/C++编程语言以及相关的编程概念和工具。书中还包含了许多典型的面试问题和答案示例,这可以帮助程序员在面试中更加自信地回答问题。 除了指导面试准备外,这本宝典还介绍了一些常见的编程算法和数据结构,以及如何应用它们解决问题。这对于程序员提高编程能力和解决实际问题非常有帮助。此外,宝典还提供了一些编程技巧和注意事项,帮助程序员编写更加高效、可维护和可读的代码。 总的来说,"C/C++程序员面试宝典" 是一本非常实用的指导手册,能够帮助准备C/C++程序员面试的人士更好地准备、展示自己的技能和知识。它提供了丰富的面试问题和答案示例,介绍了常见的算法和数据结构,并提供了编程技巧和注意事项。这本书对于求职者来说是一本不可或缺的工具书。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值