行,所以我試着這樣做static_cast <int>(var)和*(int *)&var之間的區別是什麼?
int b;
char x = 'a';
//Case 1
b = static_cast<int>(x);
std::cout<<"B is : "<<b<<std::endl;
//Case 2
b = *(int*)&x;
std::cout<<"B is changed as :: "<< b <<std::endl;
現在我知道的情況下,2,x
第一個字節被重新解釋認爲它是一個整數,位模式被複制到b
這給一些垃圾和在情況1中,它僅將值從char
轉換爲int
。
除此之外,這兩者之間是否有區別?
一個是未定義的行爲,另一個不是。 – Mysticial