我正在研究C++語言,本書的一個建議是不要混合表達式簽名和無符號類型,因爲簽名類型將轉換爲無符號類型。在C++中涉及簽名和未簽名類型的表達式
例如:
unsigned int u = 10;
int a = 42;
std::cout << u - a << std::endl; // here the value will wraps around
這個程序後,如果我嘗試ceck的類型與typeid的結果爲int,爲什麼呢? 爲什麼a的類型不是更多的無符號,但它返回到int?
不,這本書意味着你的最後一行等同於'std :: cout << u - (unsigned int)a << std :: endl;'。 – 2014-08-31 08:42:25