日常练习(9)

C/C++
1.构造函数不可以为const函数,const函数不改变成员变量,而构造函数意义在于初始化
2.虚拟内存的容量只受计算机地址位数的限制
3.

#include<stdio.h>
int cnt = 0;
int fib(int n)
{
    cnt++;
    if (n == 0)
        return 1;
    else if (n == 1)
        return 2;
    else
        return fib(n - 1) + fib(n - 2);
}
void main()
{
    fib(8);
    printf("%d", cnt);
}

可以想象成斐波那契数列,也就是说1 1 2 3 5 8…之后第九个数字就是67
4.关于编辑器的Debug和Release模式解析
assert 含义是断言,它是标准C++的cassert头文件中定义的一个宏,用来判断一个条件表达式的值是否为ture, 如果不为true, 程序会终止,并且报告出错误,这样就很容易将错误定位
通常我们开发的程序有2种模式 : Debug模式和Release模式
1. 在Debug模式下, 编译器会记录很多调试信息, 也可以加入很多测试代码, 比如加入断言assert, 方便我们程序员测试, 以及出现bug时的分析解决
2. Release模式下, 就没有上述那些调试信息, 而且编译器也会自动优化一些代码, 这样生成的程序性能是最优的, 但是如果出现问题, 就不方便分析测试了
在debug时,有assert断言保护,而在release时,没有assert断言。
5.关于内联函数
内联函数是使用inline关键字声明的函数,也成内嵌函数,它主要的作用是解决程序的运行效率。
使用内联函数的时候要注意:
1)递归函数不能定义为内联函数
2)内联函数一般适合于不存在while和switch等复杂的结构且只有1~5条语句的小函数上,否则编译系统将该函数视为普通函数。
3)内联函数只能先定义后使用,否则编译系统也会把它认为是普通函数。
4)对内联函数不能进行异常的接口声明。
6.关于函数覆盖
因为如果派生类的函数与基类的函数同名,并且参数也相同,但是基类函数没有virtual关键字,此时,基类的函数被隐藏,注意,是隐藏而不是覆盖。覆盖的基本特征之一就是 基类函数必须有virtual关键字。
7.在组合时, 为了保证成员对象被正确清除, 在组合类的析构函数中需要显式调用其成员对象的析构函数
8.注意*p++和*++p的区别,不要遇到这种题就以为简单太激动导致错误发生
9.快排效率的高低取决于递归深度的深浅,
当基本有序时, 会向基准元素的左边或者右边进行 高深度递归,
而基本无序时, 递归的深度 远远小于高深度递归的深度
所以基本无序时, 效率最高, 优势最明显
10.堆最适合创建一个优先级队列
11.可用堆排序对待几亿用户需求前十的要求
12.
InvalidateRect(NULL,TRUE)使整个客户区重绘,而且擦除背景。
InvalidateRect(NUll,FALSE)使整个客户区重绘,不擦除背景。
13.对于构造函数的继承,如果说父类没有默认构造函数,那么子类必须指明调用了父类的哪个构造函数,不然就会编译错误

linux
1.一个进程能同时创建多少个线程这取决于地址空间的大小和内核参数
2.Linux文件系统的目录结构是一棵倒挂的树,文件都按其作用分门别类地放在相关的目录中。现有一个外部设备文件,我们应该将其放在/dev
3.在 / etc / fstab文件中指定的文件系统加载参数中, 参数noauto一般用于CD - ROM等移动设备
4.你被需要检查系统中的设备情况,需要检查哪个log日志 / var / log / messages
5.下面的内存管理模式中,会产生外零头的是段式, 请求段式
页式内零头,段式外零头

操作系统
1.不可能导致饥饿现象的是时间片转移,因为这是最公平的,大家轮流执行
2.关于进程状态的转换总结
运行态:进程占用CPU,并在CPU上运行;
就绪态:进程已经具备运行条件,但是CPU还没有分配过来;
阻塞态:进程因等待某件事发生而暂时不能运行; 进程在一生中,都处于上述3中状态之一。
运行– - 》就绪: 时间片用完。
就绪– - 》运行:运行的进程的时间片用完,调度就转到就绪队列中选择合适的进程分配CPU
运行– - 》阻塞:发生了I / O请求或等待某件事的发生
阻塞– - 》就绪:进程所等待的事件发生,就进入就绪队列
P操作是阻塞作用
V操作是唤醒作用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值