您好,登錄后才能下訂單哦!
這篇文章主要介紹“C語言有哪些面試題”,在日常操作中,相信很多人在C語言有哪些面試題問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”C語言有哪些面試題”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
1、c語言里面關鍵static的作用是什么?(看到這個問題讀者可以自己先思考一下,再看答案)
答案:
(1)、在函數體中,一個被聲明為靜態(tài)的變量在這一函數被調用過程中維持其值保持不變。
(2)、在模塊內,模塊就是你寫的".C"文件(在函數體外),一個被聲明為靜態(tài)的變量可以被模塊內所用函數訪問,但是不能被模塊外其它函數訪問,它相當于一個本地的一個靜態(tài)全局變量(注意它和非靜態(tài)全局變量的區(qū)別哦)。
(3)、在模塊內,一個被聲明為靜態(tài)的函數只可被這一模塊內的其它函數調用。也就是說,這個函數被限制在聲明它的模塊本地內使用,不可以在模塊外使用。
2、寫一個“標準”宏,這個宏輸入兩個參數并返回較小的一個;同時講出 # 與 ##的作用區(qū)別?
答案:
(1)、第一個問題可以這樣來寫,注意里面使用了三目運算符:
#define MIN(x,y) ((x)<(y)?(x):(y))
(2)、"#"作用是把宏參數轉化為字符串的運算符,而"##"是把兩個宏參數連接的運算符:
#define STR(arg) #arg
這里當參數 arg 為 hello ,則宏展開的結果是"hello"
#define STR(arg) name_y
#define STR(arg) name_##y
#define STR(arg,arg2) arg arg2##_##arg2##_arg2
上面示例中,假設 arg 為 int , arg2 為 a ,則上面宏展開的結果為:
name_y
name_int
inta_a_a
3、C語言里面關鍵字sizeof的作用是什么?
答案:
(1)sizeof是在編譯階段處理,且不能被編譯為機器碼。還有一點,很多人會認為它是一個庫函數;它的作用是計算出各種類型變量或者結構所占的字節(jié)數:
int a ,sizeof(a)
int *a,sizeof(a)
int a[10],sizeof(a)
int a[0],sizeof(a)
sizeof(void)
sizeof(void *)
上面演示結果:
4
4
40
0
1
4
4、請簡述用戶空間的內存分配及各空間保存的數據類型:
答案:
(1) 用戶空間供為3G,分為:??臻g,堆空間,數據區(qū),代碼段。
??臻g保存:局部變量,函數形參,自動變量。??臻g特點,先進后出,空間由系統(tǒng)管理;??臻g生命周期所在函數執(zhí)行結束后釋放;棧空間保存的局部變量未初始化時,默認初始化為隨機值。
堆空間:由malloc , calloc ,ralloc,這些好函數分配的空間位堆空間,堆空間特點:先進先出,由用戶管理。
數據區(qū):又分為.bss段、.data段、常量區(qū)。其中.bss段保存的是未初始化的全局變量,當全局變量未初始化時,系統(tǒng)默認初始化為0;常量區(qū)保存的是常量,里面保存的值不能被修改,只能做讀操作;.data段是保存已經初始化的全局變量以及被static修飾的變量(靜態(tài)變量)。數據區(qū)的聲明周期是整個程序執(zhí)行完之后再釋放。
代碼段保存的是代碼。
到此,關于“C語言有哪些面試題”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續(xù)學習更多相關知識,請繼續(xù)關注億速云網站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。