Pointer with same memory address with different value

Viewed 2434

I casted the memory address from double to an integer . Even though they point to the same address why the values are different ?

#include<iostream>
using namespace std;

int main()
{
    double d = 2.5;
    auto p = (int*)&d;
    auto q = &d;
    cout<<p<<endl; // prints memory address 0x7fff5fbff660
    cout<<q<<endl; // print memory address  0x7fff5fbff660
    cout<<*p<<endl; //prints 0
    cout<<*q<<endl; // prints 2.5
    return 0;

}

But why the value are different

0x7fff5fbff660
0x7fff5fbff660
0
2.5
Program ended with exit code: 0
6 Answers
Related