面試寶典總結貼
面試寶典 系列(一)
1 形如 !x++ 的計算順序,若在條件判斷中,則需要首先判斷(!x)的true或者false,然后需要執行x++。
2 printf 函數的執行順序是由右至左。代碼如下:















printf()函數的參數,在printf()函數讀取時是從左往右讀取的,然后將讀取到的參數放到棧里面去。
最后讀取到的就放在棧頂,處理參數的時候是從棧頂開始的,所以是從右邊開始處理的.--printf()函數的特點。
注意點:
1.printf()函數中的計算是從右向左進行的。
2.我們在寫代碼時,盡量避免無確定意義的表達式出現,因為不同的編譯器,可能會采用不同的理解方式。
3 *ptr++ ,*++ptr 之間的區別。*ptr++ 表示先取值,后++ ,效果同*(ptr++)。 *++ptr 表示ptr的值先自增,然后再取值。
3 float f = 1.0 (int )f 與 (int &) 之間的區別:
int & 表示,把float在內存中的變量的前sizeof(int)個字節,當做int類型的數字輸出。
4 判斷一個數是否是2的N次方(2,4,8,16),不需要使用循環操作。
注意這些數都是0010 ,0100 ,1000,10000,A&(A-1) 結果必然為0,可以使用這種方法判斷。
5 求a , b的最大值
max = ((a + b) + abs(a -b)) / 2
6 交換 a b 的值
a = a ^ b
b = a ^ b
a = a ^ b
posted on 2011-05-11 19:53 kahn 閱讀(512) 評論(0) 編輯 收藏 引用 所屬分類: c++學習總結