今天乙個學生去面試.net的軟體工程師,面試題有這麼一道:
short s=0;
s = s + 1;和
short s=0;
s += 1;
這兩個表示式有什麼區別,會報什麼錯誤?
學生不會,我也不會
結果在vs2005中一試,第乙個編譯報錯,第二個沒有問題。
真的蠻奇怪的,而且覺得出這種面試題的公司也蠻奇怪的
我的理解:
s = s + 1; 由於 1 預設是int型的,s是short的,"s+1"的結果預設是int的,把int的結果賦值給short時會報錯,損失精度了,必須寫成 s = (short)(s+1) 來強制轉化一下
s+=1; 在編譯時已經明確最後要賦值給s,即short型的,所以會在內部自動進行轉換的 (
不知哪位有更好的解釋)
這樣的面試題,你會嗎?
1 有300層高樓與2個玻璃杯,玻璃杯從x層掉落摔到地面剛好摔碎 x層以下是摔不碎的 請問至少需要多少次摔杯子試驗就一定能夠找到x層是第幾層?2 5000個數中找出3個數,使它們和的絕對值最小,求演算法與時間複雜度。3 在2 n的乙個長方形方格中 高 2,寬 n 用乙個1 2的骨牌鋪滿方格 高 1,...
字串反轉的面試題,你會嗎?
不用申請記憶體空間,把乙個字串做反正操作。比如說 str abcdefg res gfedcba 這個比較簡單,只要做前後字元交換就可以了 func reverse str byte 第二階段 不用申請記憶體,如何把每個單詞做反轉,假設單詞中間只有乙個空格 比如說 str php is the be...
這樣的面試題,你能回答幾個
1 了解hbase麼,為什麼儲存速度快?2理解spring麼,它的aop實現是基於什麼原理,bean的初始化過程是那些 涉及具體的源 在bean factory初始化前 執行中,初始化後想做些事情。該怎麼做?3 struts1和strus2的區別,strust2關於 thredlocal是什麼,st...