cpp os 计网学习笔记

1.全局变量和局部变量的区别

从生命周期、使用方法和操作系统区分三方面去看,全局变量的生命周期和主程序一样,而局部变量随着函数、作用域的创建和销毁而创建和销毁;使用上全局变量可以被任何函数使用而局部变量只被自己使用;操作系统把全局数据段内的当作全局变量,而局部变量在局部的栈中。

2.静态类型、动态类型、静态绑定和动态绑定的区别

静态类型和动态类型分别是声明的类型和实际指针和引用绑定的类型,静态类型是在编译期确定,比如声明类型,比如静态的属性和方法,非虚函数,而动态绑定的是虚函数。

指针和引用都可以实现动态绑定。

3.函数调用的过长

分配形参的栈空间;把实参复制到形参空间;进行运算。

4.go实现并发的方法

通过锁和条件变量、使用channel

5.函数的返回值的内容

函数返回后函数的栈空间就被销毁,其他人可能改写,函数的返回值会被放入寄存器中,可以在指定的寄存器中获取函数的返回值。

6.初始值列表会加速

因为类的构造函数在初始值列表会初始化类的对象,如果在构造函数体内则可能会出现多次构造函数比如拷贝构造、赋值操作。 除此之外常量、引用、父类有构造函数、成员函数的构造函数必须在初始值列表调用。

7.cpp的四种类型转换机制

const_cast\dynamic_cast\static_cast分别代表修改常量属性、安全的多态类型的类型转换、常用的类型转换。

8.coredump

因为异常或者bug导致程序终止,可以通过一定的方法产生一个core文件,把程序运行的相关信息显示在这个文件中来调试程序。

9.指针类型的加减操作

指针类型的加法减法是以指针所指的类型为单位的,比如int*加1,因为一个int占用4字节,就是在地址空间移动4个大小,实际上是加1*sizeof int。两个指针的减法也是,会计算出中间的大小除以类型大小。

指针和指针之间没有加法,指针只能加的是数字,代表指针的前后移动。

10.继承区分为public、protected、private继承

前者是不改变变量的范围,后者是把public变成protected、最后一个都变成private。

相关推荐
Wilber的技术分享22 分钟前
【LeetCode高频手撕题 2】面试中常见的手撕算法题(小红书)
笔记·算法·leetcode·面试
愚昧之山绝望之谷开悟之坡1 小时前
合格境外投资者
笔记
寒秋花开曾相惜3 小时前
(学习笔记)3.8 指针运算(3.8.3 嵌套的数组& 3.8.4 定长数组)
java·开发语言·笔记·学习·算法
是翔仔呐3 小时前
第11章 显示外设驱动:I2C协议OLED屏、SPI协议LCD屏字符/图片/中文显示
c语言·开发语言·stm32·单片机·嵌入式硬件·学习·gitee
_李小白3 小时前
【AI大模型学习笔记之平台篇】第五篇:Trae常用模型介绍与性能对比
人工智能·笔记·学习
承渊政道4 小时前
【优选算法】(实战体会位运算的逻辑思维)
数据结构·c++·笔记·学习·算法·leetcode·visual studio
AI-Ming4 小时前
程序员转行学习 AI 大模型: 踩坑记录:服务器内存不够,程序被killed
服务器·人工智能·python·gpt·深度学习·学习·agi
m0_716765234 小时前
C++提高编程--STL常用容器(set/multiset、map/multimap容器)详解
java·开发语言·c++·经验分享·学习·青少年编程·visual studio
2501_945318494 小时前
零基础学习AI的选型指南:CAIE认证与编程型AI认证如何取舍
人工智能·学习
承渊政道4 小时前
【优选算法】(实战推演模拟算法的蕴含深意)
数据结构·c++·笔记·学习·算法·leetcode·排序算法