一道字串題目的隨想

2021-04-13 08:02:52 字數 597 閱讀 5341

這是一道微軟筆試題,題目出自http://hi.baidu.com/danforn/blog/item/91b104fa4297cd9558ee906e.html。

原體如下:

看到「原因」,真是很有收穫:

(1)char name="msr asia";

return name;

"msr asia"被臨時放在棧中,它的位址的確放在了name中,而且也的確正確的返回了name裡的內容。可是在返回之後name裡的內容就沒有意義了,因為記憶體已經收回了臨時的棧空間。而堆裡的東西卻不因程式塊的結束而消失,正是用武之地啊。

(2)char name[32];

name="welcome";

"welcome"是乙個臨時的字串陣列,只不過沒有名字。上述賦值語句相當於把乙個長度為7的陣列整體賦值給乙個長度為32的陣列,編譯時有錯誤(如果name是字元指標就沒有問題,看來字元指標和字元陣列也不是完全可以互換的,把陣列看成指標是有限制的)。

(3)strcat本身不夠完善,編譯連線執行時都不會對第乙個引數做越界檢查也不會報錯,很有可能先呼叫它沒什麼問題,可是後面的處理又出了莫名的問題。

(4)最好在最後加乙個p = null。免得誤用。

一道演算法題目的解法

有這樣一道演算法題目 144張牌放到若干的盒子中,每個盒子中放10到 40張,問有多少種放法?不考慮順序 由144 10 14.4 144 40 3.6 可得,盒子的數量最少為4,最多為14.假設有n個盒子 4 n 14 每個盒子中分別放 a1,a2,an 張牌,由於不考慮順序,不妨設a1 a2 a...

一道ACM題目的反思

大三本科,成績還算不錯 很不自謙的說 所有程式設計實驗做的津津有味,亦常為同學捉刀,最近的圖形學實驗寫了4600行c 自命程式設計能力還是不錯的。可自大一來嘗試acm便屢屢受挫,鬱鬱不得志,中途因課業緊張未能堅持 壓根沒正兒八經的做過幾道題 也自覺智商平平,無甚希望。最近在考研與工作間猶豫不決,無聊...

一道簡單題目的複雜演算法

這是我們第一節彙編上機的實驗題目,問題描述 在debug下實現,記憶體區2100h處有乙個位元組帶符號數 用e命令存入 要求程式設計將其取出1 若此數為正,則3000h單元置01h,2 若此數為0,3000h單元置0h,3 若此數為負,3000h單元置ffh。題目很簡單,應該說簡單得讓人做著無聊,於...