到moto面試時一題的解答:
黑月亮 發表於 2005-8-7 11:06:00
比較下面兩個函式的異同:
1. char * func1(void)
2. char * func2(void)
不同點:
1.第1個返回的是乙個變數,即結果在以後可修改,如str[0] = "x";而第2個返回的是乙個常量,即以後不可修改.
2. 第1個將導致錯誤,因為return語句不可返回指向「棧記憶體」的「指標」或者「引用」,因為該內存在函式體結束時被自動銷毀。而str的記憶體位於棧上。
第2個雖然不會出錯,但是函式func2的設計概念卻是錯誤的。因為func2內的「hello」是常量字串,位於靜態儲存區,它在程式生命期內恆定不變。無論什麼時候呼叫func2,它返回的始終是同乙個「唯讀」的記憶體塊。
面試時演算法題的解答思路
面試中純粹考演算法的問題一般是讓很多程式設計師朋友痛恨的,這裡分享下我對於解答演算法題的一些思路和技巧。一般關於演算法的文章,都是從經典演算法講起,一種一種演算法介紹,見得演算法多了,自然就有了感悟,但如此學習花費的時間和精力卻是過於巨大,也不適合在部落格裡面交流。這一篇文,卻是專門講快捷思路的,很...
面試時演算法題的解答思路
面試中純粹考演算法的問題一般是讓很多程式設計師朋友痛恨的,這裡分享下我對於解答演算法題的一些思路和技巧。一般關於演算法的文章,都是從經典演算法講起,一種一種演算法介紹,見得演算法多了,自然就有了感悟,但如此學習花費的時間和精力卻是過於巨大,也不適合在部落格裡面交流。這一篇文,卻是專門講快捷思路的,很...
面試時遇到的很有意思的題
這段時間出去面試,遇到了很多有意思的題。話不多說,開始上題 1 int i 10 while true 程式是結果是什麼?是987654321嗎?執行出來0987654321後執行一段時間會出現2 32 1之後繼續減 2 arraylistlist new arraylist list.add 1 ...