[問題] 幾個面試被問倒的問題

看板C_and_CPP (C/C++)作者時間15年前 (2010/10/10 10:04), 編輯推噓9(9017)
留言26則, 9人參與, 最新討論串1/1
1. 何謂Reentrant Code ,設計上需注意什麼? 我的回答: 可重入程式,讓多個Process或usres執行時能使用相同的code section,但是 擁有自己單獨的data section。 需注意不得有global or static 變數 請先進們再幫小弟補充... 2. 以下各佔多少byte? char *p[20] ; ==> 應該是 4byte x 20 = 80 byte 吧?? char (*p)[20] ; ==> 傻眼...和上式相同嗎?? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.136.220.236

10/10 10:14, , 1F
未看先猜會有人叫你不要問, 自己去編譯試看看
10/10 10:14, 1F

10/10 10:17, , 2F
第一個是pointer to char 第二個是 pointer to char [20]
10/10 10:17, 2F

10/10 10:17, , 3F
置底文就有啦!
10/10 10:17, 3F

10/10 10:22, , 4F
陣列跟函式的定義方法比較特殊, 先來看 char *p[20]
10/10 10:22, 4F

10/10 10:22, , 5F
左邊括起來會比較好幫助理解 → (char*) p[20] 這跟你
10/10 10:22, 5F

10/10 10:23, , 6F
一般定義陣列的時候意思一樣, p 是一個陣列, 內含20個
10/10 10:23, 6F

10/10 10:24, , 7F
元素, 每一個元素的型別為 char*(也就是指標to char)
10/10 10:24, 7F

10/10 10:25, , 8F
不過一個指標的大小會依平台不一樣, char (*p)[20]
10/10 10:25, 8F

10/10 10:26, , 9F
p 是一個指標, 指向一個陣列, 該陣列有20個元素, 元素
10/10 10:26, 9F

10/10 10:27, , 10F
型態是 char, 指標的大小都是固定的, 不會因為指到的
10/10 10:27, 10F

10/10 10:27, , 11F
型態而異
10/10 10:27, 11F

10/10 10:41, , 12F
char (*p)[20] <從來沒用過,感覺好像自己都不會c++>"<
10/10 10:41, 12F

10/10 10:43, , 13F
怪不得覺得題目似曾相似,原來是別版有問過 Orz
10/10 10:43, 13F

10/10 10:44, , 14F
我不是想潑冷水,不過第一題隨便Goo應該都一堆答案
10/10 10:44, 14F

10/10 10:45, , 15F
2. array of char* 和 pointer to array 你應該就知道了
10/10 10:45, 15F

10/10 11:06, , 16F
其實考 2. 這種問題沒什麼意義,真的很少人這樣寫。
10/10 11:06, 16F

10/10 11:06, , 17F
真的要寫的,等遇到編譯錯誤的時候就自然會去找答案了。
10/10 11:06, 17F

10/10 11:07, , 18F
考 2. 跟考 char (* (*x())[])() 這東西感覺一樣無聊。
10/10 11:07, 18F

10/10 11:12, , 19F
其實2.也要知道比較好.
10/10 11:12, 19F

10/10 12:17, , 20F
2. 中的 char (*p)[20] 小弟就常用, 需要視情況切換輸
10/10 12:17, 20F

10/10 12:18, , 21F
入陣列或是輸出陣列, 讓中間處理的程式碼合併時就會用
10/10 12:18, 21F

10/10 12:19, , 22F
的到, 不過在C++我都會改成物件參考 + ?: 來做
10/10 12:19, 22F

10/10 14:17, , 23F
所以二是80&4bytes囉?
10/10 14:17, 23F

10/10 15:03, , 24F
那為何不直接使用 char *p; 就好?
10/10 15:03, 24F

10/10 16:20, , 25F
因為 p 是二維陣列
10/10 16:20, 25F

10/10 16:21, , 26F
另外如果用 char **p; 則執行 p[1][0]; 取值就會抓錯值
10/10 16:21, 26F
文章代碼(AID): #1CiHz4W1 (C_and_CPP)
文章代碼(AID): #1CiHz4W1 (C_and_CPP)