題一:
簡(jiǎn)述strcpy sprintf與mencpy的區(qū)別
思考過(guò)后,再到下方尋找答案
題二:
如何避免“野指針”
思考過(guò)后,再到下方尋找答案
題三:
簡(jiǎn)述指針常量與常量指針區(qū)別
思考過(guò)后,再到下方尋找答案
題一答案:
三者主要有以下不同之處:(1)操作對(duì)象不同,strcpy的兩個(gè)操作對(duì)象均為字符串,sprintf的操作源對(duì)象可以是多種數(shù)據(jù)類(lèi)型,目的操作對(duì)象是字符串,memcpy 的兩個(gè)對(duì)象就是兩個(gè)任意可操作的內(nèi)存地址,并不限于何種數(shù)據(jù)類(lèi)型。(2)執(zhí)行效率不同,memcpy最高,strcpy次之,sprintf的效率最低。(3)實(shí)現(xiàn)功能不同,strcpy主要實(shí)現(xiàn)字符串變量間的拷貝,sprintf主要實(shí)現(xiàn)其他數(shù)據(jù)類(lèi)型格式到字符串的轉(zhuǎn)化,memcpy主要是內(nèi)存塊間的拷貝。說(shuō)明:strcpy、sprintf與memcpy都可以實(shí)現(xiàn)拷貝的功能,但是針對(duì)的對(duì)象不同,根據(jù)實(shí)際需求,來(lái)選擇合適的函數(shù)實(shí)現(xiàn)拷貝功能。
題二答案:
“野指針”產(chǎn)生原因及解決辦法如下:(1)指針變量聲明時(shí)沒(méi)有被初始化。解決辦法:指針聲明時(shí)初始化,可以是具體的地址值,也可讓它指向NULL。(2)指針 p 被 free 或者 delete 之后,沒(méi)有置為 NULL。解決辦法:指針指向的內(nèi)存空間被釋放后指針應(yīng)該指向NULL。(3)指針操作超越了變量的作用范圍。解決辦法:在變量的作用域結(jié)束前釋放掉變量的地址空間并且讓指針指向NULL。注意:“野指針”的解決方法也是編程規(guī)范的基本原則,平時(shí)使用指針時(shí)一定要避免產(chǎn)生“野指針”,在使用指針前一定要檢驗(yàn)指針的合法性。
題三答案:
指針常量是指定義了一個(gè)指針,這個(gè)指針的值只能在定義時(shí)初始化,其他地方不能改變。其實(shí)指針常量是唯一的,即NULL;常量指針是指定義了一個(gè)指針,這個(gè)指針指向一個(gè)只讀的對(duì)象,不能通過(guò)常量指針來(lái)改變這個(gè)對(duì)象的值。指針常量強(qiáng)調(diào)的是指針的不可改變性,而常量指針強(qiáng)調(diào)的是指針對(duì)其所指對(duì)象的不可改變性。注意:無(wú)論是指針常量還是常量指針,其最大的用途就是作為函數(shù)的形式參數(shù),保證實(shí)參在被調(diào)用函數(shù)中的不可改變特性。
-
嵌入式
+關(guān)注
關(guān)注
5105文章
19288瀏覽量
310198 -
C語(yǔ)言
+關(guān)注
關(guān)注
180文章
7618瀏覽量
138705 -
指針
+關(guān)注
關(guān)注
1文章
483瀏覽量
70711
原文標(biāo)題:考一考!嵌入式C面試題3道
文章出處:【微信號(hào):gh_c472c2199c88,微信公眾號(hào):嵌入式微處理器】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
常見(jiàn)的嵌入式C語(yǔ)言面試題
嵌入式開(kāi)發(fā)面試題3題道,思考一下,你會(huì)幾個(gè)
常見(jiàn)的MySQL高頻面試題
Java架構(gòu)面試筆試專(zhuān)題資料及經(jīng)驗(yàn)(含答案)和學(xué)習(xí)筆記: ActiveMQ消息中間件面試專(zhuān)題.pdf

嵌入式常見(jiàn)經(jīng)典筆試題

評(píng)論