1. 不穩(wěn)定的排序:
選擇,快速,希爾,堆排序不穩(wěn)定
2. 繼承性是面向?qū)ο笳Z言不同于其它語言之處(而不是多態(tài))
3. test* p=new test();
p=NULL;
p->hello(); //只要是test 類型的指針就能調(diào)用test 的成員函數(shù)前提是函數(shù)里沒有涉及到成員變量。
4. printf("%d, %d\n", *str, *(++str));
函數(shù)的參數(shù)是從右向左運算的 所以兩個str指向的其實是相同的地方
5. unsigned char a=-0xA5;
unsigned cahr b=~a>>4;
因為4 編譯器在計算~a>>4的時候會先把a(bǔ)轉(zhuǎn)為int 原理: 低精度轉(zhuǎn)為高精度
>>運算符的優(yōu)先級高于~ 所以是FFFFFFF5給了uchar b
b=0xF5
6. 在函數(shù)中
char str[] = "hello" 和 char *str = "hello"的區(qū)別
前者是放在棧中的數(shù)組, 后者是常量 放在全局區(qū) 所以前者函數(shù)返回會有問題后者不會 可以改為 static char str[] = ... 就不會有問題了
6. float a=1.0f
float b=0.0f
cout << (int)a == (int&)a //false (int&)a相當(dāng)于將該浮點數(shù)地址開始的sizeof(int)個字節(jié)當(dāng)做int輸出 而(int)a=1
cout << (int)b == (int&)b //b就都是0了 ??
7. extern "C"
在C++中調(diào)用被C編譯器編譯后的函數(shù) C++支持重載 編譯器編譯后的庫函數(shù)名為類似_foo_int_int的這種 而C編譯后位_foo這種 為解決名字匹配問題 C++ 提供交換指定符號extern "C"
8. (60*60*24*365)UL
無符號長整型
9. sizeof("ab\n") = 4
就算是'\n'后面也得有'\0'來結(jié)尾
10. sizeof計算的是棧中內(nèi)存的大小 所以static不會計入其中