C语言指针高频面试题及详细答案(实战无废话版).docxVIP

  • 1
  • 0
  • 约3.51千字
  • 约 6页
  • 2026-07-03 发布于河北
  • 举报

C语言指针高频面试题及详细答案(实战无废话版).docx

C语言指针高频面试题及详细答案(实战无废话版)

说明:所有题目均为互联网大厂、嵌入式、后端C岗真实高频考题,答案摒弃书面化套话,以面试口述、代码实操视角解答,重点标注坑点和易错细节。

一、基础概念类(必问)

1.什么是指针?指针和指针变量的区别?

标准答案:

指针本质就是内存地址,是内存单元的编号,是一个纯数值。

指针变量是用来存放地址的变量,是一个实实在在的变量,占用内存空间。

通俗区分:

地址(指针)相当于房子的门牌号,指针变量相当于记录门牌号的纸条。门牌号不占房子空间,纸条需要占空间。

面试加分点:32位系统指针变量占4字节,64位系统占8字节,和指向的数据类型无关。

2.amp;和*的作用分别是什么?

标准答案:

-取地址符:取出变量的内存地址,只能作用于变量,不能作用于常量、表达式。

-*解引用符(取值符):根据地址找到对应内存空间,取出里面的值,只能作用于地址。

易错坑点:

定义变量时的*不是解引用,只是标识变量为指针类型,比如int*p;这里*只是类型修饰符。

3.野指针是什么?怎么产生的?如何避免?

标准答案:

野指针:指向未知、不受程序管控内存的指针,没有合法指向,不是空指针。

产生原因:

1.指针变量未初始化,随机指向垃圾地址;

2.指针指向的内存释放后,未置空,指针变成野指针;

3.指针操作越界,指向数组、变量之外的内存。

规避方法

文档评论(0)

1亿VIP精品文档

相关文档