面试题-指针的概念

本文详细介绍了指针的基础知识,包括指针的定义、初始化、用法及其优缺点。讨论了指针与迭代器的区别、指针安全问题如野指针和悬浮指针,以及指针在数组、函数、复杂声明等方面的应用。同时,通过实例解释了指针运算的注意事项,强调了指针类型和所指对象类型的一致性重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

返回目录:https://blog.youkuaiyun.com/chen1083376511/article/details/82723709

问题:

问:什么是指针?

答:指针是用来存储内存地址的变量,它指向单个对象的地址,除了void指针类型之外,指针的数据类型与所指向地址的变量数据类型须保持一致。不论指针指向的数据类型是哪一种,他本身永远是整型,保存的是地址。

分析:

int *ip;

const intt *ip2;

ip和ip2都是指针变量名,int表示该指针变量的类型是整型。*表示指针变量。

-------------------------------------------------------

问题:

问:如何初始化指针并对其赋值?

答:指针的初始化就是给指针赋初值,&符号可以用来获取对象的内存地址,并且赋值给指针变量。指针变量的初始化和赋值都可以通过运算符”=“来实现。

分析:

指针可以初始化为0(NULL),,没有初始化的指针指向是随机的,它可能导致随机修改了程序的值。

变量的数据类型和指针变量的数据类型要保持一致。所以以下代码是错误的:

int a=123;
long *p;
p=&a;

------------------------------------------------------------

问题:

问:是否可以确定指针指向一个对象?

答:指针用于指向对象,一个指针只指向一个对象的内存地址。

---------------------------------------------------------------

问题:

问:指针和迭代器主要的区别?

答:指针和迭代器都是提供其所指对象的间接访问。区别是:指针用于指向单个对象,而迭代器只用于访问容器内的元素。

------------------------------------------------------------

问题:

问:运用好指针有哪些优点?
答:

1.提高程序的编译效率和执行速度。

2.通过指针可使用主调函数和被调函数之间共享变量或数据结构,便于实现双向数据通讯。

3.可以实现动态的存储分配。

4.便于表示各种数据结构,编写高质量的程序。

5.使表达式变得紧凑和简洁。

---------------------------------------------------------------------------

问题:

问:使用指针不恰当的会出现哪些问题?举些例子。
答:
1.访问数组和其他数据结构时越界。
2.自动变量消失后被引用。
3.堆上分配的内存释放后被引用。
4.内存分配之前解引用。

-------------------------------------------------------------

问题:

问:指针是一种特殊

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值