C语言面试题总结

  1. 数组指针 和 指针数组?

整型数组: int a[5]

指针数组: int *a[5] a先碰[], 是一个数组

数组指针: int (*a)[] a先碰*,是一个指针,指向数组

  1. sizeof 和 strlen 区别?

  2. sizeof 编译阶段就计算出结果, strlen 程序运行时才计算

  3. sizeof 计算所占的总内存字节, strlen则是遇\0停止

  4. 局部变量传指针出去,还有效吗?

无效,局部变量在栈上分配,系统自动回收。

  1. 链表倒数第k个数?双指针

  2. 伪共享? <高性能调优的进阶知识点>

CPU缓存行(Cache Line)

缓存一致性协议(MESI): 一个核心修改缓存行里的任何数据,其他核心里同一份缓存行会被强制标记为无效。下次访问必须重新从内存加载。

伪共享就是,裸机上不共享,但物理上共享同一个缓存行,互相拖慢。

如何解决?1. 缓冲行填充 2. 对其属性。

  1. 多进程多线程适用场景?

多线程适合大多数场景。尤其是追求低资源占用,高并发,快启动情况。

多进程:1. 强隔离容错,故障互不影响 2. 内存资源隔离,突破单进程限制 3. 需要独立权限 4. Python专属CPU密集型场景。

  1. 大页内存,提高TLB缓存命中率

  2. RDMA 全过程说一下

  3. nvmed 如何处理缓冲盘上的内容。

  4. TCP 三次握手,四次挥手

  5. ARP 工作在哪一层? 2.5层

  6. NCCL 有什么了解

  7. 有没有用过无锁队列?

相关推荐
爱吃芹菜炒肉2 小时前
Chapter 16: Power Management
服务器·c语言·网络·tcp/ip·pcie
城管不管2 小时前
嵌入模型Embedding Model
java·开发语言·python·embedding·嵌入模型
Rust研习社2 小时前
Rust Pin 解析:核心原理与异步编程实践
开发语言·后端·rust
Drone_xjw2 小时前
解决 Qt 程序在 Kylin(麒麟)系统下表头“白屏”的问题
开发语言·qt·kylin
运维行者_2 小时前
通过OpManager的Windows服务监控能力释放最佳IT网络性能
服务器·开发语言·网络·windows·web安全·php
.千余2 小时前
【Linux】进程概念
linux·服务器·开发语言·学习
码界筑梦坊3 小时前
94-基于Python的商品物流数据可视化分析系统
开发语言·python·mysql·信息可视化·数据分析·毕业设计·fastapi
睡觉就不困鸭3 小时前
第11天 删除有序数组中的重复项 II
数据结构
im_AMBER3 小时前
Leetcode 160 最小覆盖子串 | 串联所有单词的子串
开发语言·javascript·数据结构·算法·leetcode