指標
#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 設計乙個不能被繼承的類 將建構函式和析構函式定義為私有成員就可以了。但是這樣了,如何例項化物件了?可以採用靜態成員函式例項化和釋...