题一:
简述strcpy sprintf与mencpy的区别
思考过后,再到下方寻找答案
题二:
如何避免“野指针”
思考过后,再到下方寻找答案
题三:
简述指针常量与常量指针区别
思考过后,再到下方寻找答案
题一答案:
三者主要有以下不同之处:(1)操作对象不同,strcpy的两个操作对象均为字符串,sprintf的操作源对象可以是多种数据类型,目的操作对象是字符串,memcpy 的两个对象就是两个任意可操作的内存地址,并不限于何种数据类型。(2)执行效率不同,memcpy最高,strcpy次之,sprintf的效率最低。(3)实现功能不同,strcpy主要实现字符串变量间的拷贝,sprintf主要实现其他数据类型格式到字符串的转化,memcpy主要是内存块间的拷贝。说明:strcpy、sprintf与memcpy都可以实现拷贝的功能,但是针对的对象不同,根据实际需求,来选择合适的函数实现拷贝功能。
题二答案:
“野指针”产生原因及解决办法如下:(1)指针变量声明时没有被初始化。解决办法:指针声明时初始化,可以是具体的地址值,也可让它指向NULL。(2)指针 p 被 free 或者 delete 之后,没有置为 NULL。解决办法:指针指向的内存空间被释放后指针应该指向NULL。(3)指针操作超越了变量的作用范围。解决办法:在变量的作用域结束前释放掉变量的地址空间并且让指针指向NULL。注意:“野指针”的解决方法也是编程规范的基本原则,平时使用指针时一定要避免产生“野指针”,在使用指针前一定要检验指针的合法性。
题三答案:
指针常量是指定义了一个指针,这个指针的值只能在定义时初始化,其他地方不能改变。其实指针常量是唯一的,即NULL;常量指针是指定义了一个指针,这个指针指向一个只读的对象,不能通过常量指针来改变这个对象的值。指针常量强调的是指针的不可改变性,而常量指针强调的是指针对其所指对象的不可改变性。注意:无论是指针常量还是常量指针,其最大的用途就是作为函数的形式参数,保证实参在被调用函数中的不可改变特性。
-
嵌入式
+关注
关注
5082文章
19111浏览量
304845 -
C语言
+关注
关注
180文章
7604浏览量
136710 -
指针
+关注
关注
1文章
480浏览量
70552
原文标题:考一考!嵌入式C面试题3道
文章出处:【微信号:gh_c472c2199c88,微信公众号:嵌入式微处理器】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论