牛客网 —— 腾讯2017校招开发工程师笔试试卷(二)

链接:https://www.nowcoder.com/test/6393508/summary


第一题:Linux进程通信方式: 套接字(网络通信),信号量,管道(PIPE),共享内存,FIFO(命名管道),信号(signal),文件锁。

 

第二题: 区分数组指针和指针数组:

数组指针:int *p[4];   从右往左理解,因为[4],所以是一个数组,然后是int*,说明内部的元素是4个int指针。 (中文名字本质在左边,看代码本质在右边)

指针数组:int (*p)[4];  因为有括号,所以说明它是一个指针,然后再从右往左理解。   (其实,最正规的理解是看运算符的优先级, [] > *)

因为本题本指针数组,所以该指针指向的数组每个元素都是长度为4的数组。m为{{1,2,3,4},{5,6,7,8},{9,0, , }}。

 

第三题:银行家算法用于避免死锁。 (有关于死锁的部分,概念可以完全去学习一下)

 

第七题:待会再学。

 

第12题:64位系统,32位系统:CPU一次处理的位数,寄存器的位数也和这个位数一致。   对于MAR,他也是一个寄存器,因此CPU处理字长决定了虚拟地址的长度,因此,指针的长度也会因此改变,在64位系统中为8B,在32位系统中为4B。       (因此,对于32位系统的计算机而言,超过4G的内存就没有必要了。)

 

第13题:空类求sizeof为1,加不加构造函数对sizeof没影响,但有了虚函数,则需要有一个指针指向虚函数表,32位下,指针sizeof为4(指针大小)。

 

posted @ 2020-02-05 19:30  B_luePhantom  阅读(163)  评论(0编辑  收藏  举报