随便记录点

八股文

C/C++部分

关键字

1、C语言中的内存,栈区和静态区

静态区(static):全局变量存储(在程序的整个生命周期都存在),

栈区(stack):局部变量存储(自动的连续内存),

堆区(heap):动态存储(内存池,非连续分配)。

2、new/delete与malloc/free区别

new、delete是C++中的操作符,而malloc和free是标准库函数。

new返回的是特定类型的指针,并且可以自动计算所申请内存的大小,而malloc需要我们计算申请内存的大小,并且在返回是强行转换为实际类型的指针。

3、sizeof和strlen有什么区别

sizeof是操作符,在计算字符串的空间大小时,包含了结束符’\0’,而strlen是一个计算字符串长度的库函数,使用时需要引入头文件#include<string.h>,不包含’\0’,只计算结束符’\0’之前的字符串长度。

函数

1、重载和重写有什么区别?

1、重写是子类和父类之间的关系,垂直关系;重载是同一个类方法之间的关系,水平关系;

2、重写对于函数名,参数要求是一致的;重载则是在同一个函数名下参数顺序、个数和类型有不同点;

3、重写由一个方法或者一对方法产生关系;重载则是多个方法之间的关系。

2、说一下fork, wait, exec函数?

父进程产生子进程使用fork拷贝出来一个父进程的副本,拷贝了父进程的页表,两个进程都读同一块内存,当有进程写的时候使用写拷贝机制分配内存,exec函数可以加载一个elf文件去替换父进程,从此父进程和子进程就可以运行不同的程序了。fork从父进程返回子进程的pid,从子进程返回0,调用了wait的父进程将会发生阻塞,直到有子进程状态改变,执行成功返回0,执行失败则返回-1,exex执行成功则子进程从新的程序开始,无返回值,执行失败则返回-1。

数组

1、数组下标可以是负数吗?

可以,因为下标只是给出了一个当前地址的偏移量而已,只要根据这个偏移量能定位到有效目标地址就行,举个栗子:

#include <stdio.h>
int main() {
    int i =;
    int a[5] = {0, 1, 2, 3, 4};
    int *p = &a[4];
    for (i = -4; i <= 0; i++) printf("%d %x\n", p[i], &p[i]);
    return 0;
}
// 输出结果为
// 0 b3ecf480
// 1 b3ecf484
// 2 b3ecf488
// 3 b3ecf48c
// 4 b3ecf490

指针

1、常量指针和指针常量区别(易混淆)

常量指针:指向常量的指针,指针所指的值不变,指向地址可变

指针常量:指针是常量,指向地址不变,指向的值可变

简而言之,const char* 限制了指针所指向的内容的修改,而 char* const 限制了指针本身的修改。你可以通过检查const关键字的位置来确定是哪种限制:如果const*之前,那么指针指向的内容是常量;如果const*之后(即在指针类型之后),那么指针本身是常量。

容器和算法

1、vector和list的区别是什么?

1 vector底层实现是数组;list是双向链表;

2 vector支持随机访问,list不支持;

3 vector在中间结点进行插入删除会导致内存拷贝,list不会;

4 vector随机访问性能好,插入删除性能差;list随机访问性能差,插入删除性能好 。

2、STL中迭代器有什么作用?有指针为何还要迭代器?

1、迭代器(Iterator)模式又称Cursor(游标)模式,用于提供一种方法顺序访问一个聚合对象中各个元素,而又不需要暴露该对象的内部表示,迭代器返回的是对象引用而不是对象的值,所以cout只能输出迭代器使用*取值后的值而不是输出其本身。

2、迭代器和指针的区别:迭代器不是指针,是类模板,表现的像指针,迭代器封装了指针,重载了指针的一些操作符,->、*、++、–等,可遍历容器内全部或部分元素的对象,相当于一种智能指针,可以根据不同类型的数据结构来实现不同++,–的操作。

待更新~

相关推荐

  1. 随便记录

    2024-04-23 08:36:02       14 阅读
  2. 使用Uniapp随手记录知识

    2024-04-23 08:36:02       37 阅读
  3. 随便东西

    2024-04-23 08:36:02       8 阅读
  4. python知识记录

    2024-04-23 08:36:02       19 阅读
  5. Linux知识记录

    2024-04-23 08:36:02       14 阅读
  6. shaderlab 关键记录

    2024-04-23 08:36:02       8 阅读
  7. HTML 相关知识记录

    2024-04-23 08:36:02       36 阅读
  8. C++随笔记录

    2024-04-23 08:36:02       13 阅读
  9. hive 命令记录(随时更新)

    2024-04-23 08:36:02       26 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-23 08:36:02       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-23 08:36:02       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-23 08:36:02       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-23 08:36:02       18 阅读

热门阅读

  1. PAT 1097 Deduplication on a Linked List(25分)

    2024-04-23 08:36:02       17 阅读
  2. ospf的工作过程和特点

    2024-04-23 08:36:02       14 阅读
  3. vue 实现级联选择器功能

    2024-04-23 08:36:02       13 阅读
  4. UML类图

    UML类图

    2024-04-23 08:36:02      13 阅读
  5. AWS清除CloudFront缓存

    2024-04-23 08:36:02       13 阅读
  6. 维护网络安全的途径有哪些?

    2024-04-23 08:36:02       15 阅读
  7. axios 实现上传、下载

    2024-04-23 08:36:02       13 阅读
  8. 一键展开或折叠树形表格

    2024-04-23 08:36:02       13 阅读
  9. 【设计模式】11、flyweight 享元模式

    2024-04-23 08:36:02       13 阅读
  10. 【Python-正则表达式】

    2024-04-23 08:36:02       11 阅读