面试问题总结(1)

  • (꒪ꇴ꒪ ),Hello我是祐言QAQ
  • 我的博客主页:C/C++语言,数据结构,Linux基础,ARM开发板,网络编程等领域UP
  • 快上,一起学习,让我们成为一个强大的攻城狮!
  • 送给自己和读者的一句鸡汤:集中起来的意志可以击穿顽石!
  • 作者水平很有限,如果发现错误,请在评论区指正,感谢


先提问题,看看你能否全部回答的上

c关键字有哪些?

栈和堆的区别?

线程同步方式?

进程通信方式?

介绍一下大端小端?

tcp ip有几层,各层常见协议有哪些?

介绍一下段和页?

介绍一下io多路复用?

写一个指针数组和数组指针?

以下是您提出的问题的答案:

  1. C关键字有哪些:auto、breakcasechar、const、continue、default、dodoubleelse、enum、extern、floatfor、goto、ifintlong、register、returnshort、signed、sizeofstaticstructswitchtypedef、union、unsigned、void、volatile、while等。

  2. 栈和堆的区别:

    • 栈(Stack):栈是一种线性数据结构,用于存储函数的局部变量、函数调用信息以及返回地址等。它的特点是后进先出(LIFO),内存管理由编译器自动处理,通常用于存储局部变量和函数调用。
    • 堆(Heap):堆是一种动态分配内存的区域,由程序员手动分配和释放。它的特点是随机访问,内存管理需要程序员负责,通常用于存储动态分配的数据,如对象、数组等。
  3. 线程同步方式:

    • 互斥锁(单线程访问):用于保护共享资源,一次只允许一个线程访问。
    • 信号量:控制同时访问共享资源的线程数量。
    • 条件变量(等待机制):允许线程等待特定条件的发生。
    • 读写锁(多线程读单线程写):允许多个线程同时读取共享资源,但只允许一个线程写入。
  4. 进程通信方式:

    • 管道(Pipe):单向通信,通常用于父子进程间通信。
    • 命名管道(Named Pipe,FIFO):有名管道,允许无关进程间通信。
    • 共享内存(Shared Memory):多个进程共享同一块内存区域。
    • 信号(Signal):用于进程间通知和处理异步事件。
    • 消息队列(Message Queue):进程通过消息队列传递数据。
    • 套接字(Socket):用于网络通信和进程间通信。
  5. 大端小端: 大端(高存低)和小端(低存低)是两种存储多字节数据的方式。在大端模式中,最高有效字节存储在最低内存地址,而在小端模式中,最低有效字节存储在最低内存地址。这种区别在网络通信和数据存储时很重要。

  6. TCP/IP有几层,各层常见协议有哪些: TCP/IP协议栈通常分为四层:

    • 应用层:HTTP、SMTP、FTP、SSH等。
    • 传输层:TCP、UDP。
    • 网络层:IP、ICMP、ARP。
    • 网络接口与物理层(链路层):以太网、PPP。
  7. 段和页:

    • 段(Segment):段式存储管理将内存划分为若干段,每个段具有不同的属性和大小。段的大小可以动态变化。
    • 页(Page):页式存储管理将内存划分为固定大小的页,通常为4KB。内存和磁盘也被划分为相同大小的页,以便进行页面交换。
  8. I/O多路复用: I/O多路复用是一种并发编程技术,允许一个进程可以同时监听多个文件描述符(套接字、文件等)的可读或可写状态,从而实现高效的事件驱动编程。在C语言中,常见的I/O多路复用函数包括selectpollepoll等。

  9.  写一个指针数组和数组指针: 指针数组(Array of Pointers)是一个数组,其元素是指向其他数据的指针。数组指针(Pointer to an Array)是一个指向数组的指针。

    示例:

    // 指针数组,包含三个指向整数的指针 
    int* ptrArray[3]; 
    // 数组指针,指向包含三个整数的数组 
    int (*arrPointer)[3];

面试问题总结(1)_第1张图片

        更多C/C++语言Linux系统数据结构ARM板实战相关文章,关注专栏:

   手撕C语言

            玩转linux

                    脚踢数据结构

                            系统、网络编程

                                     探索C++

                                             6818(ARM)开发板实战

写在最后

  • 今天的分享就到这啦~
  • 觉得博主写的还不错的烦劳 一键三连喔~
  • 感谢关注

你可能感兴趣的:(面试题解析,面试,职场和发展,网络协议,服务器,linux)