首页 > 其他分享 >#简答 技术面

#简答 技术面

时间:2024-07-06 22:55:25浏览次数:15  
标签:函数 静态 步骤 技术 C++ 内存 简答 指针

1. C和C++有哪些区别

面向对象

C支持面向过程编程。
C++支持面向对象编程(OOP),如类和对象,继承,多态等。

面向对象:面向对象编程就是把问题分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描述某个事物在整个解决问题的步骤中的行为。

面向过程:面向过程编程就是分析出解决问题的步骤,然后把这些步骤一步一步的实现,使用的时候一个一个的依次调用就可以了。

 

虽然C语言不直接支持面向对象编程,但通过结构体和函数指针的组合,可以实现类似于面向对象的特性,如类和封装、继承和多态。这种方式在某些嵌入式系统编程中比较常见)

1.用结构体表示类,并在其中包含数据成员和函数指针。

2.继承可以通过在结构体中嵌套另一个结构体来实现。

3.多态性可以通过函数指针来模拟。》

 

标准库

C++的标准库比C的丰富得多,包括STL(标准模板库)


函数重载和模板

C++支持函数重载和模板,而C不支持。

命名空间

C++有命名空间(namespace)机制,C没有。

异常处理

C++有异常处理机制,C没有

 

2. C和C++中内存分为哪些区域
堆(Heap
栈(Stack)
全局/静态区(Global/Static Area
常量区(Constant Area)
代码区(Code Area)

3. 分别存放什么东西
堆: 动态分配的内存,如`malloc`(C)或`new`(C++)。
栈: 局部变量和函数调用信息。
全局/静态区: 全局变量和静态变量。
常量区: 字符串常量和其他常量。
代码区: 程序的机器指令。

4. 什么是内存泄露
内存泄露是指程序在动态分配内存后没有释放,导致内存一直被占用且不可用。

5. 怎么样避免内存泄露

使用智能指针(如`std::unique_ptr`和`std::shared_ptr`)。
养成良好的编码习惯,确保每次分配内存后及时释放。
使用工具如Valgrind来检测内存泄露。

6.Volatile关键字
volatile`关键字告诉编译器该变量可能会被程序外部修改,编译器不应优化对它的读写操作。

7. 如果不用的话,他有可能从什么地方读

如果不使用`volatile`,编译器可能会优化代码,导致程序从寄存器中读取旧值而不是从内存中读取最新值。

8. Sizeof,作用于数组,作用于指针呢
对数组,`sizeof`返回数组的总字节数。
对指针,`sizeof`返回指针本身的大小(在64位系统上通常是8字节)

9. 64位的一个int,我要获取他的第23位
   - 使用位操作:`(num >> 23) & 1`。

10. **共用体和结构体的区别**
    - **共用体**: 所有成员共享同一块内存,修改一个成员会影响其他成员。
    - **结构体**: 每个成员有自己独立的内存。

11. C++中修饰可访问性的关键字

public`, `protected`, `private`

12. Static关键字
    - **静态变量**: 变量的生命周期贯穿程序始终。
    - **静态函数**: 只能在定义它的文件中访问。

13. **性能优化在你项目中有没有体现**
    - 具体举例说明你在项目中做过的性能优化,比如算法优化、内存管理、并行计算等。

14. **编译步骤**
    - **预处理**: 宏展开,文件包含等。
    - **编译**: 生成汇编代码。
    - **汇编**: 生成目标代码。
    - **链接**: 生成可执行文件。

15. **在一个函数A中调用函数B,怎么知道调用完B之后返回函数A**
    - 通过函数调用栈,函数A的返回地址被保存,当函数B执行完后,控制权回到函数A。

16. Linux常用命令
 `ls`, `cd`, `cp`, `mv`, `rm`, `chmod`, `ps`, `grep`, `find`, `tar`, `gzip`

17. Chmod后面的三个数字分别代表什么

用户(user), 组(group), 其他人(others)的权限。

18. 查看文件的前n行
`head -n <number> <file>`

19. 当前脚本窗口关掉之后,怎么让这个脚本在后台执行

默认情况下,当退出一个终端会话时,终端会发送一个 HUP(hangup)信号给所有在该会话中启动的进程,这通常会导致这些进程终止
,所以可以使用`nohup <command> &。其中&用于将该命令放到后台运行。

 

20. 获取单向链表的倒数第n个节点
使用双指针法,一个指针先走n步,然后两个指针一起走,直到前面的指针到达末尾。

21. 二叉树的怎么进行层序遍历
使用队列来实现,先将根节点入队,然后不断出队,并将其子节点入队。

 

 

 

标签:函数,静态,步骤,技术,C++,内存,简答,指针
From: https://blog.csdn.net/weixin_58298518/article/details/140197533

相关文章

  • 【技术点】嵌入式技术考点二:Linux系统
    文章目录1.makefile是什么?它的作用是什么?2.什么是静态库/动态库?作用是什么?有什么区别?动态库如何更新?3.代码编译的过程有哪些?4.程序调试的方法有哪些?5.链接和硬链接的区别是什么,Linux中常用的文件系统及优缺点?6.简述Linux中的堆栈,获取内存的方法及优点,如何预防内存泄漏?7.......
  • VB 爬虫技术
    《VB爬虫第一节:初识爬虫》在这第一节的VB爬虫课程中,我们将踏入一个充满挑战与机遇的领域——网络爬虫。一、什么是爬虫爬虫,简单来说,就是一个能够自动获取网页数据的程序。它模拟了人类在浏览器中的操作,通过发送请求、接收响应,并对返回的数据进行解析和提取,从而获取我们......
  • camunda开源工作流平台技术架构
    CamundaPlatform是一个基于Java的BPMN(流程引擎)、DMN(规则引擎)、CMMN(案例管理)的开源框架。主要组件是用Java编写的,主要专注于为Java开发人员提供在JVM上设计、实现和运行业务流程和工作流所需的工具(开源流程引擎、规则引擎等)。尽管如此,我们也希望将流程引擎技术提供给非......
  • 深入刨析Redis存储技术设计艺术(一)
    一、RedisObject1.1、Redis数据存储1.2、RedisObject的数据结构redis的value都封装在redisObject中redisObject的底层实现:redisObject的数据结构如下:server.htypedefstructredisObject{ unsignedtype:4; unsignedencoding:4; unsignedlru......
  • 京东云的技术优势与推荐奖励
    京东云背靠京东集团,对电商和物流这些领域理解特别深。京东自家在这些方面经验丰富,所以用京东云提供的解决方案会觉得特别顺手,尤其是在处理高流量的时候,稳定性非常好,不容易出故障。技术方面也是杠杠的,像全球最大规模的Docker集群之一,保证系统平稳运行。还有就是大数据、人工智......
  • PCDN技术如何提高内容分发效率?(贰)
    PCDN技术通过以下方式提高内容分发效率:1.利用用户设备作为分发节点:与传统的CDN技术主要依赖中心化服务器不同,PCDN技术利用用户的设备作为内容分发的节点。当用户下载内容时,他们的设备也会成为内容分发的一部分,将已下载的内容传递给其他需要相同内容的用户。这种去中心化的......
  • C语言字节对齐技术在嵌入式、网络与操作系统中的应用与优化
    第一部分:嵌入式系统中的字节对齐嵌入式系统通常对性能和资源有着严格的要求。在这些系统中,字节对齐的正确使用可以显著提高数据访问速度,减少内存占用,并提高系统的整体效率。一、嵌入式系统中的字节对齐挑战嵌入式系统中的微处理器和微控制器通常对数据访问的对齐有特定的要......
  • 基于STM32技术的物流分拣控制系统毕业设计
    基于STM32技术的物流分拣控制系统毕业设计摘要随着物流行业的快速发展,对分拣效率和准确性的要求日益提高。本文设计了一款基于STM32技术的物流分拣控制系统,旨在通过自动化和智能化手段,提高物流分拣的效率和准确性。该系统集成了STM32微控制器、传感器技术、电机驱动模块、无......
  • JAVA中的IO流技术(JAVA基础)
    IO流的基础概念1.如何理解IO1.输入(Input)指的是:可以让程序从外部系统获得数据(核心含义是“读”,读取外部数据)。2.输出(Output)指的是:程序输出数据给外部系统从而可以操作外部系统(核心含义是“写”,将数据写出到外部系统)。3.java.io包为我们提供了相关的API,实现了对所有外......
  • Python异步编程技术详解:async、await、yield和anext
    Python异步编程技术详解:async、await、yield和anext1.async和await2.yield3.anext4.StopAsyncIteration5.综合示例:异步聊天机器人总结异步编程是Python中一种强大的并发编程模式,可以显著提高I/O密集型应用的性能。本文将详细介绍Python中的几种重要的异步编......