OK 그래서 난이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