linux下的c语言-网络-网络编程面试题
基础部份:
1.下列程序在32位linux或unix中的结果是什么?
func(char *str)
{
printf("%d",sizeof(str));
printf("%d",strlen(str));
}
main()
{
char a[]="123456789";
printf("%d",sizeof(a));
func(a);
}
答: 10 4 9
2.int delete(node * head)
{
free(head);
head=head-link;
return(0);
}
指出程序的错误,并且写出正确的程序
答:free指针head后,head->link指向“垃圾”内存,所以head此时也会指向
“垃圾”内存。
改正:
int delete(node * head)
{
node *temp =head->link;
free(head);
head=temp;
return(0);
}
3.#define MAX_NUM 10 和 const int MAX_NUM=10区别
答:c中const的意思是一个不能被改变的普通变量,编译器并不是把它看做一
个常量。而define就是简单的值替换。
网络/网络编程部份:
1、connect方法会阻塞,请问有什么方法可以避免其长时间阻塞?
答:最通常的方法最有效的是加定时器;也可以采用非阻塞模式。
2、网络中,如果客户端突然掉线或者重启,服务器端怎么样才能立刻知道?
答:若客户端掉线或者重新启动,服务器端会收到复位信号,每一种tcp/ip得实
现不一样,控制机制也不一样。
3.在子网210.27.48.21/30种有多少个可用地址?分别是什么?
答:
简:
30表示的是网络号(network number)是30位,剩下2位中11是广播(broadcast)
地址,00是multicast地址,只有01和10可以作为host address。
详:
210.27.48.21/30代表的子网的网络号是30位,即网络号是210.27.48.21 &
255.255.255.251=210.27.48.20,此子网的地址空间是2位,即可以有4个地址:
210.27.48.20, 210.27.48.21, 210.27.48.22, 210.27.48.23。第一个地址的主
机号(host number/id)是0,而主机号0代表的是multicast地址。最后一个地
址的最后两位是11,主机号每一位都为1代表的是广播(broadcast)地址。所以
只有中间两个地址可以给host使用。其实那个问题本身不准确,广播或
multicast地止也是可以使用的地址,所以回答4也应该正确,当然问的人也可
能是想要你回答2。我个人觉得最好的回答是一个广播地址,一个multicast地
址,2个unicast地址。
4.TTL是什么?有什么用处,通常那些工具会用到它?(ping? traceroute?
ifconfig? netstat?)
答:
简:TTL是Time To Live,一般是hup count,每经过一个路由就会被减去一,
如果它变成0,包会被丢掉。它的主要目的是防止包在有回路的网络上死转,浪
费网络资源。ping和traceroute用到它。
详:TTL是Time To Live,目前是hup count,当包每经过一个路由器它就会被
减去一,如果它变成0,路由器就会把包丢掉。IP网络往往带有环(loop),比如
子网A和子网B有两个路由器相连,它就是一个loop。TTL的主要目的是防止包
在有回路的网络上死转,因为包的TTL最终后变成0而使得此包从网上消失(此
时往往路由器会送一个ICMP包回来,traceroute就是根据这个做的)。ping会
送包出去,所以里面有它,但是ping不一定非要不可它。traceroute则是完全
因为有它才能成的。ifconfig是用来配置网卡的,netstat -rn 是用来列路由
表的,所以都用不着它
5.路由表示做什么用的?在linux环境中怎么来配置一条默认路由?
答:
简:路由表是用来决定如何将包从一个子网传送到另一个子网的,换局话说就是
用来决定从一个网卡接收到的包应该送的哪一张网卡上的。在Linux上可以用
“route add default gw <默认路由器IP>”来配置一条默认路由。
详:路由表是用来决定如何将包从一个子网传送到另一个子网的,换局话说就是
用来决定从一个网卡接收到的包应该送的哪一张网卡上的。路由表的每一行至少
有目标网络号、netmask、到这个子网应该使用的网卡。当路由器从一个网卡接
收到一个包时,它扫描路由表的每一行,用里面的netmask和包里的目标IP地
址做并逻辑运算(&)找出目标网络号,如果此网络号和这一行里的网络号相同就
将这条路由保留下来做为备用路由,如果已经有备用路由了就在这两条路由里将
网络号最长的留下来,另一条丢掉,如此接着扫描下一行直到结束。如果扫描结
束任没有找到任何路由,就用默认路由。确定路由后,直接将包送到对应的网卡
上去。在具体的实现中,路由表可能包含更多的信息为选路由算法的细节所用。
题外话:路由算法其实效率很差,而且不scalable,解决办法是使用IP交换机,
比如MPLS。
在Linux上可以用“route add default gw <默认路由器IP>”来配置一条默认
路由。
6.在网络中有两台主机A和B,并通过路由器和其他交换设备连接起来,已经确
认物理连接正确无误,怎么来测试这两台机器是否连通?如果不通,怎么来判
断故障点?怎么排除故障?
答:测试这两台机器是否连通:从一台机器ping另一台机器
如果ping不通,用traceroute可以确定是哪个路由器不能连通,然后再
找问题是在交换设备/hup/cable等。
7.网络编程中设计并发服务器,使用多进程 与 多线程 ,请问有什么区别?
答案一:
1,进程:子进程是父进程的复制品。子进程获得父进程数据空间、堆和栈的复
制品。
2,线程:相对与进程而言,线程是一个更加接近与执行体的概念,它可以与同
进程的其他线程共享数据,但拥有自己的栈空间,拥有独立的执行序列。
两者都可以提高程序的并发度,提高程序运行效率和响应时间。
线程和进程在使用上各有优缺点:线程执行开销小,但不利于资源管理和保护;
而进程正相反。同时,线程适合于在SMP机器上运行,而进程则可以跨机器迁移。
答案二:
根本区别就一点:用多进程每个进程有自己的地址空间(address space),线程
则共享地址空间。所有其它区别都是由此而来的:
1。速度:线程产生的速度快,线程间的通讯快、切换快等,因为他们在同一个
地址空间内。
2。资源利用率:线程的资源利用率比较好也是因为他们在同一个地址空间内。
3。同步问题:线程使用公共变量/内存时需要使用同步机制还是因为他们在同一
个地址空间内。
等等
Linux C 面试题
一.填空题:1. 在Linux系统中,以文件方式访问设备。
2. Linux内核引导时,从文件/etc/fstab中读取要加载的文件系统。
3. Linux文件系统中每个文件用索引节点来标识。
Linux文件系统使用索引节点来记录文件信息,作用于Windows的文件分配表类似,索引节点是一个数据结构,它包含了一个文件的文件名,位置,大小,建立或修改时间,访问权限,所属关系等文件控制信息,一个文件系统维护了一个索引节点的数组,每个文件或目录都与索引结点数组中的唯一一个元素对应,系统为每个索引结点分配了一个号码,也就是该结点在数组中的索引号,称为索引结点号。
Linux文件系统将文件索引结点号和文件名同时保存在目录中,所以目录只是将文件的名称和它的索引结点号结合在一起的一张表。
目录中每一对文件名称和索引结点号称为一个连接。
4. 全部磁盘块由四个部分组成,分别为引导块、专用块、i节点表块和数据存储块。
Linux系统中的每个文件都被赋予一个唯一的数值,这个数值称做索引节点。
索引节点存储在一个称作索引节点表<inode table>中,该表在磁盘格式化时被分配。
每个实际的磁盘或分区都有其自己的索引节点表。
一个索引节点包含文件的所有信息,包括磁盘上数据的地址和文件类型。
文件类型包括如普通文件、目录和特殊文件这样的信息。
linux硬盘组织方式为:引导区、超级块(superblock),索引结点(inode),数据块(datablock),目录块(diredtory block)。
其中超级块中包含了关于该硬盘或分区上的文件系统的整体信息,如文件系统的大小等;超级块后面的数据结构是索引结点,它包含了针对某一个具体文件的几乎全部信息,如文件的存取权限、所有者、大小、建立时间以及对应的目录块和数据块等;数据块是真正存储文件内容的位置。
但是索引结点中不包括文件的名字,文件名是放在目录块里的。
目录块里包含有文件的名字以及此文件的索引结点编号。
c 网络知识面试
C 网络知识面试导言面试是每个求职者都要经历的过程,特别是在技术领域,网络知识的掌握是非常重要的。
本文将介绍一些关于 C 网络知识的常见面试题,帮助读者准备面试,提升技术水平。
网络基础网络基础是 C 网络编程的基石,掌握网络基础知识对于理解 C 网络编程是至关重要的。
以下是一些常见的网络基础问题:1. 什么是 IP 地址?答:IP 地址是指互联网协议地址,用于唯一标识一个网络上的主机。
IP 地址分为 IPv4 和 IPv6 两种类型。
IPv4 地址由 32 位二进制数组成,表示为四个点分十进制数。
IPv6 地址由 128 位二进制数组成,表示为八个以冒号分隔的十六进制数。
2. 什么是 TCP 和 UDP?答:TCP(传输控制协议)和 UDP(用户数据报协议)是两种网络传输协议。
TCP 提供可靠的、面向连接的数据传输服务,确保数据的完整性和顺序。
UDP 则是一种无连接的协议,它将数据以数据包的形式发送,不保证数据的可靠传输。
3. 什么是端口?答:端口是用于标识应用程序的逻辑地址,一个端口可以同时被多个应用程序使用,每个应用程序通过端口号来区分。
常见的端口有 0 到 65535,其中 0 到1023 是被系统保留的端口号。
4. 什么是HTTP和HTTPS?答:HTTP(超文本传输协议)是一种用于在网络上传输超文本数据的协议。
HTTPS(安全超文本传输协议)是在 HTTP 的基础上加入了 SSL/TLS 加密和认证机制,提供了更安全的数据传输方式。
C 网络编程C 语言是一种广泛应用于网络编程的语言,掌握 C 网络编程可以帮助我们更好地开发网络应用。
以下是一些常见的 C 网络编程问题:1. 如何创建一个 TCP 服务器?答:在 C 语言中,可以使用 socket 函数创建一个套接字,然后使用 bind 函数绑定一个 IP 地址和端口,接着使用 listen 函数开始监听连接请求,最后使用accept 函数接收客户端连接。
linux c++编程面试题
以下是一些常见的 Linux C++ 编程面试题:
1. C++ 语言有哪些特性?
2. C++ 与 C 语言的主要区别是什么?
3. 什么是 RAII?在 C++ 中如何实现?
4. 什么是异常处理?在 C++ 中如何实现?
5. 什么是 STL?有哪些常用的 STL 容器?
6. 什么是模板编程?如何实现模板函数和模板类?
7. 什么是多态?在 C++ 中如何实现?
8. 什么是虚函数和纯虚函数?它们在C++ 中的用途是什么?
9. 什么是动态内存分配和静态内存分配?它们有什么区别?
10. 什么是内存对齐?为什么需要内存对齐?
11. 什么是进程、线程和协程?它们有什么区别?
12. 如何在 Linux 中使用 C++ 编写多线程程序?
13. 什么是信号和信号处理?如何在 Linux 中使用 C++ 处理信号?
14. 什么是文件 I/O 和网络 I/O?在 Linux 中如何使用 C++ 进行文件 I/O 和网络 I/O?
15. 什么是进程间通信(IPC)?在Linux 中有哪些常见的IPC 方式?
16. 如何使用C++ 标准库中的函数和类进行日期和时间处理?
17. 如何使用 C++ 标准库中的函数和类进行字符串处理?
18. 如何使用 C++ 标准库中的函数和类进行文件操作?
19. 如何使用 C++ 标准库中的函数和类进行数学计算?
20. 如何使用C++ 标准库中的函数和类进行数据结构和算法的实现和应用?。
linux c基础数据结构面试题
linux c基础数据结构面试题在Linux C基础数据结构面试题中,常见的问题包括关于链表、栈、队列、树等数据结构的实现和操作。
以下是一些可能会被问到的问题以及它们的回答:1. 请解释一下链表的概念以及它的实现方式。
链表是一种线性数据结构,由一系列节点组成,每个节点包含数据和指向下一个节点的指针。
在C中,链表可以通过结构体和指针来实现,例如:c.struct Node {。
int data;struct Node next;};操作链表时,可以通过指针来遍历链表并进行插入、删除等操作。
2. 请写一个函数来反转链表。
c.struct Node reverseList(struct Node head) {。
struct Node prev = NULL, current = head, next = NULL;while (current != NULL) {。
next = current->next;current->next = prev;prev = current;current = next;}。
head = prev;return head;}。
3. 什么是栈?它的特点是什么?栈是一种后进先出(LIFO)的数据结构,只允许在栈顶进行插入和删除操作。
在C中,可以使用数组或者链表来实现栈。
4. 请写一个函数实现栈的入栈和出栈操作。
c.#define MAX_SIZE 100。
struct Stack {。
int arr[MAX_SIZE];int top;};void push(struct Stack stack, int item) {。
if (stack->top == MAX_SIZE 1) {。
printf("Stack overflow\n");return;}。
stack->arr[++stack->top] = item;}。
Linux C 面试题
linux C程序员经典面试题一想成为嵌入式程序员应知道的0x10个基本问题:预处理器(Preprocessor)1 . 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题)#define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL我在这想看到几件事情:1) #define 语法的基本知识(例如:不能以分号结束,括号的使用,等等)2)懂得预处理器将为你计算常数表达式的值,因此,直接写出你是如何计算一年中有多少秒而不是计算出实际的值,是更清晰而没有代价的。
3) 意识到这个表达式将使一个16位机的整型数溢出-因此要用到长整型符号L,告诉编译器这个常数是的长整型数。
4) 如果你在你的表达式中用到UL(表示无符号长整型),那么你有了一个好的起点。
记住,第一印象很重要。
2 . 写一个"标准"宏MIN ,这个宏输入两个参数并返回较小的一个。
#define MIN(A,B) ((A)<= (B) ? (A) : (B))这个测试是为下面的目的而设的:1) 标识#define在宏中应用的基本知识。
这是很重要的。
因为在嵌入(inline)操作符变为标准C的一部分之前,宏是方便产生嵌入代码的唯一方法,对于嵌入式系统来说,为了能达到要求的性能,嵌入代码经常是必须的方法。
2)三重条件操作符的知识。
这个操作符存在C语言中的原因是它使得编译器能产生比if-then-else更优化的代码,了解这个用法是很重要的。
3) 懂得在宏中小心地把参数用括号括起来4) 我也用这个问题开始讨论宏的副作用,例如:当你写下面的代码时会发生什么事?least = MIN(*p++, b);3. 预处理器标识#error的目的是什么?如果你不知道答案,请看参考文献1。
这问题对区分一个正常的伙计和一个书呆子是很有用的。
只有书呆子才会读C语言课本的附录去找出象这种问题的答案。
LinuxC面试题汇总(总有你不知道的知识点)
LinuxC⾯试题汇总(总有你不知道的知识点)linux C1.⽤变量a给出下⾯的定义.a) ⼀个整型数b) ⼀个指向整型数的指针c) ⼀个指向指针的的指针,它指向的指针是指向⼀个整型数d) ⼀个有10个整型数的数组e) ⼀个有10个指针的数组,该指针是指向⼀个整型数的f) ⼀个指向有10个整型数数组的指针g) ⼀个指向函数的指针,该函数有⼀个整型参数并返回⼀个整型数h) ⼀个有10个指针的数组,该指针指向⼀个函数,该函数有⼀个整型参数并返回⼀个整型数答案是:a) int a;b) int *a;c) int **a;d) int a[10];e) int *a[10];f) int (*a)[10];g) int (*a)(int);h) int (*a[10])(int);2.写⼀个“标准”宏MIN,这个输⼊两个参数并返回较⼩的⼀个。
#define Min(a,b) ( ((a)>=(b))?(b):(a))3.嵌⼊式经常⽤到死循环,你怎么样⽤C来编写死循环呢?我的⾸选就是:while(1){},⼀些有经验的程序员喜欢⽤for( ; ; ){} ,还有⼀种是写汇编语⾔的程序员常⽤的写法:Loop:…goto Loop;4.引⽤和指针的区别?答:1.引⽤必须要初始化,指针可以不⽤初始化;2.不存在指向空值的引⽤,但是存在指向空值的指针;3.引⽤初始化后不能改变,但存在指向空值的指针;4.引⽤是变量的别名,本⾝不单独分配⾃⼰的内存空间,⽽指针有⾃⼰的内存空间;5.关键字static的作⽤是什么?在c语⾔中static有三个明显的作⽤:1)static在修饰局部变量的时候,其使得局部变量的⽣命周期发⽣改变,使得其放在data段,直到程序运⾏结束才结束。
2)static在修饰全局变量的时候,作⽤是改变其作⽤域,使得全局变量只能在定义的⽂件中使⽤。
3)static在修饰函数的时候,同样也是只能时函数只能在当前的⽂件中使⽤。
c语言面试经常问到的问题
c语言面试经常问到的问题1、C语言基础首先,应聘者在C语言面试中最常被问到的是C 语言的基础知识。
这些问题包括C语言的发展历史,程序结构,数据类型,控制结构以及函数等。
例如问题可以是:1. C语言的发展历史是什么?2. 请说明C语言的程序结构?3. 请说明C语言的数据类型?4. 请说明C语言的控制结构?5. 请说明C语言的函数?2、C语言的特性C语言的特性也是C语言面试中的一个重要的话题。
大多数应聘者都应该能够清楚地说明C语言的特性,例如低级语言,结构化编程,灵活性,高效性和可移植性等。
例如问题可以是:1. 请说明C语言的低级特性?2. 请说明C语言的结构化编程特性?3. 请说明C语言的灵活性特性?4. 请说明C语言的高效性特性?5. 请说明C语言的可移植性特性?3、C语言的应用C语言的应用也是C语言面试中的一个重要的话题。
大多数应聘者都应该能够清楚地说明C语言在计算机系统,操作系统,网络通信,图形图像,设备驱动,数据库,人工智能,虚拟现实,仿真,嵌入式系统等方面的应用情况。
例如问题可以是:1. 请说明C语言在计算机系统中的应用?2. 请说明C语言在操作系统中的应用?3. 请说明C语言在网络通信中的应用?4. 请说明C语言在图形图像中的应用?5. 请说明C语言在设备驱动中的应用?4、C语言的变量和数据类型C语言变量和数据类型也是C语言面试中的一个重要的话题。
应聘者应该能够说明C语言中的基本变量类型,指针变量,数组变量,结构体变量和枚举变量等。
例如问题可以是:1. 请说明C语言中的基本变量类型?2. 请说明C语言中的指针变量?3. 请说明C语言中的数组变量?4. 请说明C语言中的结构体变量?5. 请说明C语言中的枚举变量?5、C语言的运行时C语言的运行时也是C语言面试中的一个重要的话题。
应聘者应能够清楚地说明C语言的运行时,例如内存管理,函数调用,异常处理,调试,测试,性能分析等。
例如问题可以是:1. 请说明C语言的内存管理?2. 请说明C语言的函数调用?3. 请说明C语言的异常处理?4. 请说明C语言的调试?5. 请说明C语言的测试?6. 请说明C语言的性能分析?6、C语言的工具和技术C语言的工具和技术也是C语言面试中的一个重要的话题。
linux编程面试题
linux编程面试题1. 简介Linux是一种免费开源的操作系统内核,广泛应用于服务器、嵌入式系统和各种设备。
对于Linux编程者来说,熟练掌握Linux操作系统的特性和编程技巧是非常重要的。
本文将介绍一些常见的Linux编程面试题,帮助读者准备面试并提升自己在Linux编程领域的能力。
2. 文件操作Linux提供了强大的文件操作功能,熟练掌握文件操作的函数和命令是Linux编程的基础。
面试中可能会涉及到以下问题: - 如何在Linux系统中创建一个新文件?- 如何打开一个文件并读取其内容?- 如何将数据写入文件?- 如何将文件复制到另一个目录?- 如何将文件移动到另一个目录?- 如何删除文件?3. 进程管理进程是Linux系统中的基本执行单位,熟悉进程的管理和控制是Linux编程的关键。
以下是一些常见的与进程管理相关的问题: - 如何创建一个新进程?- 如何终止一个进程?- 如何等待一个进程的结束?- 如何获取进程的ID和父进程的ID?- 如何执行一个外部程序并传递参数?- 如何设置进程的优先级?4. 线程编程线程是进程的一部分,可以看作是进程中的一条执行路径。
在Linux编程中,使用线程可以提高程序的并发能力和响应速度。
以下是一些常见的与线程编程相关的问题:- 如何创建一个新线程?- 如何终止一个线程?- 如何等待一个线程的结束?- 如何在线程之间传递数据?- 如何使用线程同步和互斥?5. 网络编程网络编程在Linux编程中占据重要的地位,熟悉网络编程可以实现各种通信和服务程序。
以下是一些与网络编程相关的问题: - 如何创建一个TCP服务器?- 如何创建一个TCP客户端?- 如何创建一个UDP服务器?- 如何创建一个UDP客户端?- 如何使用socket进行网络编程?- 如何处理网络连接的并发请求?6. 内存管理Linux提供了灵活而强大的内存管理功能,了解内存管理是Linux 编程中的关键。
linux c c 面试题
linux c c 面试题Linux C/C++ 面试题1. 简介Linux 是一种开源的操作系统,而 C 和 C++ 是常用的编程语言。
在Linux C/C++ 面试中,面试官通常会提出一系列相关的问题,用以评估候选人的技术能力和经验。
本文将介绍一些常见的 Linux C/C++ 面试题并提供详细的解答,帮助读者更好地准备面试。
2. 问题列表2.1 Linux 相关问题- 什么是 Linux 操作系统?简要介绍一下其特点和优势。
- 如何在 Linux 终端中查看当前所在路径?- Linux 中如何创建文件夹?- 如何在 Linux 中查看文件的内容?2.2 C 语言相关问题- 什么是 C 语言?简要介绍一下其特点和优势。
- 如何在 C 语言中定义一个变量?有哪些基本数据类型?- C 语言中的指针是什么?如何使用指针访问变量的地址和值?- 如何定义和调用一个函数?C 语言中的递归函数是什么?2.3 C++ 语言相关问题- 什么是 C++ 语言?简要介绍一下其特点和优势。
- C++ 中面向对象编程的概念是什么?如何定义一个类和对象?- C++ 中的继承和多态是什么?如何实现它们?- C++ 的异常处理机制是什么?如何捕获和处理异常?3. 解答3.1 Linux 相关问题- Linux 操作系统是一种基于 UNIX 的开源操作系统,具有稳定、安全、可靠和高度可定制的特点。
它支持多用户、多任务和多线程,并且广泛用于服务器、嵌入式设备和个人电脑等领域。
- 在 Linux 终端中,可以通过使用 `pwd` 命令查看当前所在路径。
- 要在 Linux 中创建文件夹,可以使用 `mkdir` 命令,例如 `mkdir folder_name`。
- 若要查看文件的内容,可以使用 `cat` 命令,例如 `cat file_name`。
3.2 C 语言相关问题- C 语言是一种通用的编程语言,具有高效、可移植和功能丰富的特点。
linux c 面试题及答案
linux c 面试题及答案一、简介在这篇文章中,我们将介绍一些与 Linux 和 C 语言相关的面试题及其答案。
这些问题涵盖了基础知识、编程概念和实践技巧等方面,旨在帮助读者更好地准备面试,展示自己的技术能力和深度。
二、Linux 面试题1. 什么是 Linux 操作系统?它与其他操作系统有什么不同?答:Linux 是一种开源的操作系统,具有稳定性、安全性和灵活性等特点。
与其他操作系统相比,Linux 具有更好的自定制能力和更强大的命令行接口。
2. Linux 中的进程和线程有什么区别?答:进程是一个正在执行的程序实例,拥有独立的内存空间和系统资源;而线程是进程的子任务,共享相同的内存空间和系统资源。
多线程能够提高程序的并发性和效率。
3. 什么是 Linux 文件权限?如何查看和修改文件权限?答:Linux 文件权限用于控制对文件的访问权限,分为所有者、群组和其他人三个级别。
可以使用命令 ls -l 查看文件权限,使用 chmod 命令来修改文件权限。
4. Linux 中的 shell 是什么?常见的 shell 有哪些?答:Shell 是一个命令解释器,用于与操作系统进行交互。
常见的shell 包括 Bash、Csh、Ksh 等,其中 Bash 是最常用的默认 shell。
5. 如何在 Linux 中安装软件包?答:可以使用包管理器来安装软件包,比如 Ubuntu 上的 apt-get,CentOS 上的 yum。
通过指定软件包名称和版本等信息,包管理器会自动下载并安装相应的软件。
三、C 语言面试题1. 什么是指针?如何声明和使用指针变量?答:指针是一个用于存储内存地址的变量。
可以使用 * 运算符声明和使用指针变量,比如 int *ptr; 定义一个指向 int 类型变量的指针。
2. 什么是动态内存分配?如何在 C 语言中进行动态内存分配和释放?答:动态内存分配是在程序运行时动态申请和释放内存空间。
