好的,所以我尝试这样做
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
。
除此之外,这两者之间有什么区别吗?