1. **同文件**:直接用变量名引用全局变量。
2. **不同文件**:用引用头文件的方式或者在引用文件用`extern`声明后,即可使用全局变量。
do......while和while......do有什么区别呢?
do…while先执行循环再判断条件,while…do先进行判断再执行循环。
使用什么命令查看linux系统内存和CPU使用情况?使用什么命令查看系统进程信息?
- 查看Linux系统内存和CPU使用情况可用`top`、`htop`、`vmstat`命令。
- 查看系统进程信息可用`ps aux`、`pstree`命令。
队列和栈有什么区别?
数据进出规则
o 队列:先进先出(FIFO)。
o 栈:后进先出(LIFO)。
操作方式
o 队列:队尾入队、队头出队。
o 栈:栈顶入栈、栈顶出栈。
应用场景
o 队列:任务调度、消息队列等。
o 栈:函数调用、浏览器历史记录等。
队列和栈都是常见的数据结构,不同之处在于数据的存取方式。队列是一种先进先出(FIFO)的数据结构,只允许在队列的一端进行插入操作,在另一端进行删除操作。而栈是一种先进后出(LIFO)的数据结构,只允许在栈的一端进行插入和删除操作。
头文件中的 ifndef/define/endif 干什么用?
`ifndef`、`define`、`endif`组合用于防止头文件重复包含。
- `ifndef`检查宏是否未定义,若未定义则执行后续代码。
- `define`定义宏,再次包含时`ifndef`检查失败。
- `endif`标志`ifndef`块结束。
请写出IS0 七层网络模型
ISO七层网络模型由下至上依次为:
1. 物理层。
2. 数据链路层。
3. 网络层。
4. 传输层。
5. 会话层。
6. 表示层。
7. 应用层。
常用字节序哪几种?网络字节序属于哪种?
常用字节序有大端字节序(Big - Endian)和小端字节序(Little - Endian)。网络字节序属于大端字节序。
16.TCP 和 UDP 有什么区别?
TCP和UDP有以下区别:
- **连接性**:TCP是面向连接的,UDP是无连接的。
- **可靠性**:TCP提供可靠交付,UDP不保证可靠交付。
- **数据传输**:TCP按顺序传输,UDP不保证顺序。
- **拥塞控制**:TCP有拥塞控制机制,UDP没有。
- **首部开销**:TCP首部开销大,UDP首部开销小。
- **应用场景**:TCP适用于对可靠性要求高的场景,如文件传输;UDP适用于对实时性要求高的场景,如视频直播。
ARP协议主要作用是什么?
ARP协议主要作用是将IP地址解析为物理地址(MAC地址),使主机能在局域网中实现数据链路层的通信。
使用 gcc 命令将 test.c编译输出 test.out 的命令?
gcc test.c -o test.out
请简述快速排序、冒泡排序、选择排序算法的主要过程。
冒泡排序:相邻元素两两比较,逆序就交换,每轮冒大(小)数到后(前)端,直至有序。
选择排序:从未排序中选最小(大)数,与未排序首元素交换,重复直至全序。
快速排序:
1.从数列中挑出一个元素,称为 “基准”。
2. 重新排序数列,将比基准值小的元素放在基准前面,比基准值大的元素放在基准后面(相同的数可以到任一边)。
3. 对划分后的两个子数列分别重复上述步骤,直到每个子数列只有一个元素。