C++基础语法内容(6) 您所在的位置:网站首页 priority语法 C++基础语法内容(6)

C++基础语法内容(6)

2023-06-28 13:13| 来源: 网络整理| 查看: 265

第七章内容: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 实验室设备网 版权所有