在求模或取余中如果有一個操作數是負數,這兩種操作的結果取決於機器。
若僅靠左操作數的值無法確定該邏輯表達式的結果,才會求解其右操作數的值-短路求值。
關系操作符具有左結合性,如if(i<j<k),即將k與整數1或0做比較。
移位操作的右操作數不可以是負數,而且必須是嚴格小於左操作數位數的值。
bitset的用法:
作用:方便地管理一系列的bit位而不用程序員自己來寫代碼。
初始化方法:
bitset<N>varm (M)
其中varm為變量名。
N表示該類型在內存中占的位數,是二進制。
M表示變量varm的初始值www.2cto.com
實例:
#include <iostream>
#include <bitset>
using namespace std;
int main()
{
bitset<3> bs(7);
cout<<"bs[0] is "<<bs[0]<<endl;
cout<<"bs[1] is "<<bs[1]<<endl;
cout<<"bs[2] is "<<bs[2]<<endl;
return 0;
}
說明:聲明一個3位bitset型變量,初始化為7,二進制碼為111,輸出為1 1 1.
好處:更直接更易閱讀和書寫,正確使用的可能性更高,適合低級直接位操作。
條件操作符優先級相當低,使用時應當注意使用圓括號。
刪除指針後,改指針變成懸垂指針,往往導致錯誤,應立即將指針置為0,這樣就非常清楚地表明指針不再指向任何對象。
內存洩漏的一個原因:刪除指向動態分配內存的指針失敗,因為無法將該塊內存返回給自由存儲區。
const動態對象也可以使用delete來刪除。
發生隱式類型轉換的情況(可能會發生精度損失)
1)在混合類型的表達式中,其操作數被轉換成相同的類型;
2)用作條件的表達式被轉換為bool類型;
3)用一表達式初始化某個變量,或將一表達式賦值給某個變量,則該表達式被轉換為該變量的類型。
算數轉換:在執行算數操作之前,將操作符的操作數轉換為同一類型,並使表達式也具有相同的類型。
強烈建議程序員避免使用強制類型轉換。