2025年11月c和c 面试总结必考题.pdfVIP

  • 1
  • 0
  • 约2.79万字
  • 约 36页
  • 2026-01-29 发布于河北
  • 举报

重要面试的是C/C++软件工程师,但愿对大家有所协助。

一C语言部分

I问:在嵌入式开发中,为何能通过C语言去直接操作硬件?

答:由于有指针,指针是C语言的灵魂,他可以直接访内存。

2问:链表的作用?

答:用于内存管理,链表节点中的指针域可以将不持续的内存彼此关联起来,从而实

现内存的动态管理。

3问:什么变量不能用指针指向?

答:寄存器变量(regisier修饰),由于这个变量会优先选择寄存到CPU寄存器中,而指

针只能指向内存的任务区域,但不能指向寄存器。

4问:有符号字符型和无符号字符型变量的最大值和最小值分别是多少(十六进制多少),

为何?

答:有符号(-128——127,-0x80——0x7F);无符号(0——255,0——OxFF)

5局部变量能否和全局变量重名?

答:能,局部会屏蔽全局。

6全局变量和局部变量的区别。

全局变量,储存在静态区.进入main函数之前就被创立.生命周期为整个源程序。

局部变量,在栈中分派.在函数被调用时才被创立.生命周期为函数内.

7头文献中的ifndef/define/endif干什么用?

防止反复包括

8include和include””有什么区别?

ttinclude:告诉预处理器在原则系统目录中寻找文献。

^include丁“告诉预处理器先在目前目录中寻找文献,找不到则再在

原则目录下寻找文献。

9const有什么用途?(请至少阐明两种)

1()定义const常量

2()const可以修饰函数的参数返回值,甚至函数的定义体。

被const修饰的东西都受到强制保护,可以防止意外的变动,能提高程序的强健

性。

〃指向常整形数的指针变量

constchar*pl=name;〃指针所指向的内容不能变,指针指向的地址可变。constchar

*p;〃和charconst*p

〃指向整形数的常指针

char*constp2=name;//地址不可变,内容可变。

〃指向常量的常指针

constchar*constname=chen;〃地址不变,内容不变。

10.数组与链表的区别。

数组中的数据在内是次序储的,插入需要移动诸多值。

由于链表是随机储的,链表访问需要遍历。

11>内的分派:

1、栈区s(tack)-由编译器自动分派释放,寄函数的参数值,局部变量的值等。

其操作方式类似于数据构造中的栈.

2、堆区h(eap)-一般由程序员分派释放,若程序员不群放,程序结束时也许由

OS回收o注意它与数据构造中的堆是两回事,分派方式倒是类似于链表,呵呵。

3、全局区(静态区)s(tatic)一一全局变量和静态变量的储是放在一块的,初始化的

全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另

一块区域。-程序结束后有系统释放

4、文字常量区一常量字符串就是放在这里的。程序结束后由系统释放

5、程序代码区一寄函数体的二进制代码。

12^sieof和strlen()的区别

参照答案:

①sieof是运算符,计算数据所占的内存空间;strlen()是一种函数,计算字符数组的

字符数;

②sieof以用类型作参数;strlen()只能用char*作参数,必须是以70结束

③数组做sieof的参数不退化,传递给strlen就退化为指针了;

④sieof操作符的成果类型是sie_t,它在头文献中typedef为unsignedint类型。该类

型保证能容纳实现建立的最大对象的字节大小

13、在C++

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档