指针是存地址的变量
指针就是地址
地址就是指针

*取值
&取地址
char ch = *(char )&d;中的char是什么?
double d = 3.1416;
char ch = *(char *)&d;
cout<<ch<<endl;
char ch = *(char *)&d这句不太懂;解释一下这个程序是什么意思?


现有bai两个基本点:
1 double一般是du8字节(zhi32位和dao64位操作系统)
2 char是1个字节。
现在来解释char ch = *(char )&d;
1 &d : 就是取专d的内存地址属。换句话说是指向8个字节的类型指针。
2 (char )&d,将该地址由double转换为char
,指针类型转换为指向一个字节的类型指针。
3 *(char )&d。取该指针(char)的值,其实换句话说是取一个字节的内存数据,并赋予数据指针类型的类型。
4 char ch = *(char *)&d。就简单了。
总结:就是取double数d的第一个字节,并转换为char类型,赋值给ch。
再次总结:注意C程序员对待任何变量,并不应该有强烈的类型约束,优秀的C程序员更应该关注的是内存布局和内存数据的访问解释。