fork download
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. union charBool
  5. {
  6. unsigned char aChar;
  7. bool aBool;
  8. };
  9.  
  10. int main()
  11. {
  12. charBool var;
  13. charBool* varMemory = &var;
  14.  
  15. var.aBool = 65;
  16. std::cout << "a boolean = " << var.aBool << std::endl;
  17. std::cout << "a char = " << var.aChar << std::endl;
  18. std::cout << "varMemory = " << (*(reinterpret_cast<unsigned char*>(varMemory))) << std::endl;
  19.  
  20. var.aChar = 98;
  21. std::cout << "a boolean = " << var.aBool << std::endl;
  22. std::cout << "a char = " << var.aChar << std::endl;
  23. std::cout << "varMemory = " << (*(reinterpret_cast<unsigned char*>(varMemory))) << std::endl;
  24.  
  25. return 0;
  26. }
Success #stdin #stdout 0s 3468KB
stdin
Standard input is empty
stdout
a boolean = 1
a char = 
varMemory = 
a boolean = 0
a char = b
varMemory = b