1.
void *p=malloc(100);
sizeof(p)=4;
---------------------指標的位元組數,而不是指標指向的內容容量
2.
void func(char str[100])
--------------------陣列作為函式的引數進行傳遞時,該陣列自動退化為同型別的指標
3.char str[100];
sizeof(str)=100;
--------------------不是函式的引數時
4.char str="hello";
char *p=str;
int n=10;
sizeof(str)=6;sizeof(p)=4;sizeof(n)=2;
--------------------參考上面的
注:我覺得sizeof(n)應該是4,如果在32位作業系統下
5.#define a 3
#define b 4
#define c a+b
#define s(x) x*x
s(c)=a+b*a+b=3+4*3+4=19;
-------------------巨集展開只是簡單的字串替換
6.一組碰到最多的題,至少4次筆試的題都有它,搞得我鬱悶啊
可參見林銳的《c/c++高質量程式設計》,很詳細的解答了下面的題
(1)void getmemory(char *p, int num)
void test(void)
毛病出在函式getmemory 中。編譯器總是要為函式的每個引數製作臨時副本,指標引數p的副本是 _p,編譯器使 _p =
p。如果函式體內的程式修改了_p的內容,就導致引數p的內容作相應的修改。這就是指標可以用作輸出引數的原因。在本例中,_p申請了新的記憶體,只是把
_p所指的記憶體位址改變了,但是p絲毫未變。所以函式getmemory並不能輸出任何東西。事實上,每執行一次getmemory就會洩露一塊記憶體,因為沒有用free釋放記憶體。
-------------------------------------形參和實參的關係,**值傳遞
(2)void getmemory2(char **p, int num)
void test2(void)
----------------------------------&str是指標的位址,將指標的位址傳給形參p,則p也指向str,
所以*p = (char *)malloc(sizeof(char) * num);也就是給p所指向的str分配了記憶體,所以正確。(個人見解)
(3)char *getmemory3(int num)
void test3(void)
----------------------------正確
(4)char *getstring(void)
void test4(void)
不要用return語句返回指向「棧記憶體」的指標,因為該內存在函式結束時自動消亡;
(5)char *getstring2(void)
void test5(void)
函式test5執行雖然不會出錯,但是函式getstring2的設計概念卻是錯誤的。因為getstring2內的「hello
world」是常量字串,位於靜態儲存區,它在程式生命期內恆定不變。無論什麼時候呼叫getstring2,它返回的始終是同乙個「唯讀」的記憶體塊。
(6)void test(void)}7.
程式的區域性變數存在於(棧)中
程式的全域性變數存在於(靜態儲存區)中
程式動態申請的資料存在於(堆)中
8.二分法,氣泡排序
9.二叉樹,鍊錶
10.網路方面的一些:
iso 7層模型
tcp/ip 5層
tcp/udp 區別
交換機工作在 資料鏈路層
路由器工作在 網路層
hub工作在 物理層
C語言小結
1.include 中關於stidio.h的解釋 一般會把用來 include的檔案的副檔名 叫 h,稱其為標頭檔案 2.scanf的輸入形式 scanf 格式控制,位址表列 位址表列中給出各變數的位址,位址是由位址運算子 後跟變數名組成的 比如 a b分別表示變數a和變數b的位址 3.指標運算子有...
筆試題小結
static作用 1 封裝 2 保持變數的持久。3預設初始化為0 win32型別大小 int 4 long 4 short 2 double 8 float 4 char 1 動態聯編又稱動態關聯 定義 編譯程式在編譯階段並不能確切知道將要呼叫的函式,只有在程式執行時才能確定將要呼叫的函式,為此要確...
IBM筆試小結
上午8點半,昏昏沉沉的趕到復旦,第四教學樓下圍著很多人,仔細一看是留學生考試,周圍的人全操著韓語,四面楚歌中驗證了一下自己沒走錯地方。一口氣爬到五樓,瞧見了幾個cs的,也瞧見了很多別的系 別的學院的人,還有研究生大哥們的討論。說正題了。題目的型別是iptc 貌似 反正全是智力題。題目一共分三大部分。...