C++基础语法内容(6) | 您所在的位置:网站首页 › priority语法 › C++基础语法内容(6) |
第七章内容:C++基础语法内容
问题在前
第一部分问题
程序的三种基本结构是什么?三种基本结构之间的区别和特点是什么?switch语句和if语句的区别是什么,如何从汇编的角度解释他们的区别?以及他们各自的特点,优点和缺点?关于条件判断的命中率问题和短路运算问题?自定义数据结构的内存对齐问题和32位计算机的内存布局?VS2022如何打开低版本的VS项目?VS2022如何查看反汇编代码?
第二部分问题
**三种循环语句的对比如何?Do while和for和while,从汇编的角度来看哪个效率会更高? **循环语句前的注释解释循环的内容要注意,在工程项目中要学会写注释掌握看汇编代码能力,暂不要求全部看懂,至少要求学会怎么查看汇编,大概了解内容思考面试题目:如何更加高效的输出1+2+3+…+100?理解for循环优化的要点,尽可能的在程序中使用优化的for循环
第三部分的内容
什么是函数?函数的特点是什么? main只是应用程序的入口,不是系统程序的入口如何理解?(这个问题太难了,看了自己也不懂) 函数的重载是什么?区分函数的重载,重定向和重写,这是三个不同的内容 从汇编的角度怎么理解函数的重载? 如何用undname来查看“中间代码”(obj文件内的代码)理解函数的重载原理?C++是如何区分函数重载的? main函数的执行过程如何(在汇编角度如何理解,如何理解压栈出栈的过程)? 在main函数中调用一个getmax函数,中间的执行过程如何?什么是cal指令?他和空的main函数执行有什么区别? inline函数在使用前要确定在优化中设置打开,否则不会是用inlineinline函数的工作原理是怎么样的?为什么说他是空间换时间的模式?(查看汇编,发现在inline函数在主函数中被调用的时候,inline函数的主体被直接复制过来,没有了cal的回调过程)什么时候inline函数不会被调用?编译器会自动优化判断哪些函数不能被inline?递归的四个要素是什么?如何理解递归中的回溯过程?能否自己画一个递归树模拟回溯递归的过程?递归在调用的过程中,寄存器记录了大量的数据,递归的时间复杂度较高,对栈空间的消耗非常大。如何优化递归?(循环好和尾递归) 三种基本结构条件判断语句(if Switch) 循环语句(while do while for) 顺序结构 大概了解一下三种结构的内容,知道如何使用三种结构,并且熟悉三种结构的嵌套使用。 if 语句和 Switch语句的区别 在使用if语句的时候,要注意命中率的问题,一定要优先把判断条件命中率更高的条件放在前面,这样子会节省判断的时间 在汇编代码中,if语句的判断是树形结构,当if的判断条件越来越多的时候会呈现出效率非常低下的情况,而Switch语句更像是一种跳转表,他的效率明显会更高一点,但是缺点也很明显。 自定义数据类型C++支持程序员自定义数据类型,如class ,struct ,union等 class和struct在默认权限上不同,class是默认私有的,struct是默认公有的 union和他们在内存的布局上有所差别不同,所有的成员共享同一块内存空间 枚举enum数据类型也是自定义的 枚举要区分定义和声明的区别,在声明的时候是不会分配空间的,只有在定义变量的时候才会具体的分配内存的空间。 #include using namespace std; int main() { enum wT{Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday}; // 声明wT类型 wT weekday; //这里表示声明一个枚举类型的变量,但是这个变量并没有被初始化 weekday = Monday; weekday = Tuesday; //weekday = 1; // 不能直接给int值,只能赋值成wT定义好的类型值 cout |
今日新闻 |
推荐新闻 |
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 |