C C 技術筆試題

2021-06-18 11:23:35 字數 932 閱讀 5563

指標

#include void getmemery(char *p,int num)

int main()

答案:程式崩潰。實際上分配記憶體的只是形參p的乙個副本,函式呼叫結束後p又沒有返回給str,strcpy的str實際上是沒有分配記憶體。

如果想不通過返回值的方式給str分配記憶體,程式如下。

#include void getmemery(char **p,int num)

int main()

2.這個函式有什麼問題?該怎麼修改?

char* fun()

答案:函式fun呼叫結束後,fun的棧幀被推出呼叫棧,str所在的記憶體塊面臨隨時被其他程式使用的風險。

正確程式:

const char* fun()

char str = "hello world";是個區域性陣列,分配在記憶體中的棧;

而char *str = "hello world";是個全域性陣列,分配在記憶體中全域性區域,字串常量儲存在唯讀的資料段。

如果嘗試修改字串:

char *str = "hello world";

*str = 't';

執行報錯。

而這樣寫:

char str = "hello world";

str[0] = 't';

就可以修改了。

如果想修改字串,可以這樣寫:

const char* fun()
通過static開闢一段靜態儲存空間。

C C 筆試題集錦

1.求下面函式的返回值 微軟 int func x int countx 0 while x countx x x x 1 return countx 假定x 9999。答案 8 思路 將x轉化為2進製,看含有的1的個數。2.什麼是 引用 申明和使用 引用 要注意哪些問題?答 引用就是某個目標變數的...

C C 筆試題 一

1.include class shape shape int main int aaa std cin aaa 輸出的是ctorctordtor,因為b沒有呼叫delete析構 a與b有什麼區別了,就是乙個在棧上,乙個在堆上嗎?2.c語言是從那種語言發展而來的?答案很直接,從b語言發展而來的 3....

C C 筆試題 三

1.動態多型與靜態多型動態多型也就是我們經常所說的多型,是通過繼承與虛函式來實現的,是執行時確定的。靜態多型則是通過模板技術實現的,這種多型是在編譯時期就確定的 2.用c 設計乙個不能被繼承的類 將建構函式和析構函式定義為私有成員就可以了。但是這樣了,如何例項化物件了?可以採用靜態成員函式例項化和釋...