笔试题总结

9.1
C语言和C++内存申请区别:
C用malloc-free、C++用new-delete
1.new和malloc的区别:

 1.new是从自由存储区域开辟;malloc是从堆上开辟;
 2.new的返回值类型安全;mallo返回值类型不安全;
 3.new不需要计算内存的开辟大小;malloc需要计算开辟内存的大小;
 4.new抛出异常(bad_alloc);malloc返回值为空;
 5.new可以初始化;malloc不可以初始化;

2.指针常量、常量指针、指针数据、数组指针区别:

int *p[];       //指针数组,指针型数组,是一个数组,类型为*
int (*p)[];     //数组指针,数组型的指针,是一个指针,指向一个int []数组
const int *p; //指针是变量,指向的内容是常量(const int)
int* const p; //指针是常量,指向的内容是变量(int)

3.程序从windows系统转到linux要怎么做

1.SecureCRT与linux互相上传和下载文件
2.使用ftp软件上传windows项目到linux
3.phpstrom连接linux系统的项目

4.进程线程区别

线程具有许多传统进程所具有的特征,故又称为轻型进程(Light—Weight Process)或进程元;而把传统的进程称为重型进程(Heavy—Weight Process),它相当于只有一个线程的任务。在引入了线程的操作系统中,通常一个进程都有若干个线程,至少包含一个线程。

根本区别:进程是操作系统资源分配的基本单位,而线程是处理器任务调度和执行的基本单位
资源开销:每个进程都有独立的代码和数据空间(程序上下文),程序之间的切换会有较大的开销;线程可以看做轻量级的进程,同一类线程共享代码和数据空间,每个线程都有自己独立的运行栈和程序计数器(PC),线程之间切换的开销小。
包含关系:如果一个进程内有多个线程,则执行过程不是一条线的,而是多条线(线程)共同完成的;线程是进程的一部分,所以线程也被称为轻权进程或者轻量级进程。
内存分配:同一进程的线程共享本进程的地址空间和资源,而进程之间的地址空间和资源是相互独立的
影响关系:一个进程崩溃后,在保护模式下不会对其他进程产生影响,但是一个线程崩溃整个进程都死掉。所以多进程要比多线程健壮。
执行过程:每个独立的进程有程序运行的入口、顺序执行序列和程序出口。但是线程不能独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制,两者均可并发执行

5.文件权限

rwx 的权限数分别为:r =4 , w=2, x=1
分别是可读、可写、可执行。

6.&运算符

表示与运算符。

7.sizeof与strlen的差别

sizeof将str看作一个数组,需加上\0
strlen则将str只数字符、忽略\0

8.C++中的多态

1)静态多态:函数重载和运算符重载属于静态多态,复用函数名
2)动态多态:派生类和虚函数实现运行时多态
二者区别在于
静态多态的函数地址早绑定-编译阶段确定函数地址;
动态多态的函数地址晚绑定-运行阶段确定函数地址;

9.静态成员函数与非静态成员函数的区别

根本区别:静态成员函数不存在this指针,不能访问非静态成员变量。

10.C中的static关键字的作用

c/c++共有
修饰全局变量时,表明一个全局变量只对定义在同一文件中的函数可见。                         
修饰局部变量时,表明该变量的值不会因为函数终止而丢失。              
修饰函数时,表明该函数只在同一文件中调用。
c++独有:
修饰类的数据成员,表明对该类所有对象这个数据成员都只有一个实例。即该实例归 所有对象共有。
用static修饰不访问非静态数据成员的类成员函数。这意味着一个静态成员函数只能访问它的参数、类的静态数据成员和全局变量

11.栈和队列
栈又称为后进先出(Last In First Out)的线性表,简称LIFO结构,
队列是一种先进先出(First In First Out)的线性表。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值