看板 C_and_CPP 關於我們 聯絡資訊
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) gcc 問題(Question): 這是某間公司的考題 char *test = "ABCDE"; *test++; printf("%s\n", test); test++; printf("%s\n", test); 問輸出結果 -------------------------- 當時我寫: BCDE CDE -------------------------- 後來面試的主管跟我說,第一個是*test++ 所以應該是字串內容+1 所以答案是BBCDE 第二個才是test++ 因此答案是 BCDE 當時我接受這種說法,但回家後,實際寫程式來run 發現不對,答案印出來跟我寫的一樣 想問 1.是否編譯器把*test++解讀為test++ 2.中間哪裡出了問題?哪個答案才是對的? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 1.34.96.93
CaptainH:主管錯了 12/18 13:41
CaptainH:他的意思應該是 (*test)++ 12/18 13:41
pinkkate:所以*test++會被編譯器解讀為test++? 12/18 13:43
pinkkate:剛測試了一下(*test)++ 程式會當掉... 12/18 13:44
cashlalala:*test取出來的東西是const,但是基本上主管應該是覺得 12/18 13:47
cashlalala:他本來想出的是(*test)++ 12/18 13:47
purpose:不錯的公司 12/18 14:26
Feis:這怎樣都不可能是 BBCDE.. 蠻妙的 12/18 14:56
askacis:以後面試要帶NB,當場編譯看結果XD 12/18 14:58
walelile:BBCDE確實有點妙 12/18 16:54
johnpage:公司需要你的處理事情態度,會錄用還是會錄用 12/18 17:02
xvid:這主管.... 12/18 17:53
ericinttu:其實面試結束後還在面試考核階段 (!?) 12/18 17:57
coldStart:其實這是心理測驗(誤) 12/18 18:04
donby:這是不是跟置底13誡之4類似啊@@ 不可以嘗試去更改字串常數 12/18 19:34
calqlus:我跟那主管的想法一樣... 12/18 19:52
calqlus:按嘗試運算子長度很長的幾乎都後動吧 12/18 19:57
reinhert:*test++會被解讀為*(test++),而且const C String不能被 12/18 20:07
reinhert:修改值,所以原PO答案是對的 12/18 20:08
reinhert:我之前面試也遇過面試的人連for迴圈的執行順序都搞錯... 12/18 20:09
diabloevagto:這種公司... 12/18 21:38
wuliou:BBCDE也太妙… 12/18 21:47
UncleHS:這種公司不去也罷 12/18 22:10
kitehero:他是要測試你長官說錯會不會反駁 12/18 23:23
xvid:這主管可能是剛學完hello world 12/19 00:20
cobrasgo:我也覺得是要測試你長官說錯會不會反駁 12/19 07:25
ppc:這種公司...XD 12/19 19:28
LenaPark:請問是哪間啊 12/20 11:27