常见笔试题解析:大小端、数组判断、指针与引用、内存分配

需积分: 9 0 下载量 165 浏览量 更新于2024-09-07 收藏 8.74MB PDF 举报
"这是一份关于IT笔试题目的总结,包含理论题和编程题,主要涉及嵌入式系统和基础知识,如大小端判断、数组大小计算、指针与引用的区别、网络协议层次以及内存分配方式等。" 1. 大小端存储模式:计算机在存储多字节数据时,有两种不同的存储方式,即大端模式和小端模式。大端模式下,数据的高字节存储在低地址,低字节存储在高地址;相反,小端模式则是数据的低字节存储在低地址。可以通过编写简单的C程序来判断计算机是大端还是小端,如示例代码所示,通过比较地址和值的关系来确定。 2. 数组大小的宏定义:可以使用宏ARR_SIZE(A)来计算数组A的元素数量,它通过计算数组的总字节数除以单个元素的字节数来得到。示例代码中,数组a有100个元素,因此输出的结果应为100。 3. 指针与引用的区别: - 指针可以不初始化,但引用必须在声明时初始化。 - 指针在初始化后可以改变所指向的对象(除了指针常量),而引用一旦绑定到对象后就无法改变。 - 存在指向空的指针,但不存在空的引用。 4. 网络协议结构:网络协议通常按照层次模型进行组织,有五层模型(物理层、数据链路层、网络层、传输层、应用层)、四层模型(去掉会话层)和七层OSI模型(包括物理层、数据链路层、网络层、传输层、会话层、表示层和应用层)。每层都有特定的功能,如物理层处理实际的信号传输,应用层则负责用户接口。 5. new、malloc与free、delete的区别和联系: - new和delete是C++中的操作符,可以重载,用于对象的动态内存分配和释放,并调用构造函数和析构函数;malloc和free是C语言的标准库函数,仅分配和释放内存,不涉及对象的构造和析构。 - new分配内存时会自动计算所需大小,malloc需要显式指定。 - new返回的是指向对象的指针,malloc返回void指针,需要类型转换。 6. 内存分配方式及其区别: - 静态存储区分配:全局变量和static变量在此分配,生命周期贯穿整个程序运行过程。 - 栈上分配:函数调用时,局部变量在栈上分配,函数返回时自动释放。 这份资料涵盖了IT笔试中常见的基础概念和技术点,对于准备面试或学习相关知识的人来说是很好的参考资料。