一段c++程序,小弟看不懂

学习 时间:2026-04-03 19:57:34 阅读:5244
一段c++程序,小弟看不懂#include #include using namespace std;void main(){double t=15.9375;char *low=(char *)&t;char *high=(char *)(&t+1)-1;char *cp=high;//从高字节到低字节,每个字节一组while(cp >=low){bitsetbs(*cp);cout

最佳回答

火星上的银耳汤

健壮的水蜜桃

2026-04-03 19:57:34

哥帮你看,给分我。我先洗澡,有什么问题继续问double t=15。9375; //double占8个字节。&t 则是指向double型的指针(指向8个字节的第一个字节)。char *low=(char *)&t; char 占1个字节,char *low 为指针,指向char型变量的第一个字节,也是唯一一个字节。(char *) &t ::::&t本来是表示8个字节的double的指针。但被强制转换成表示1个字节的char指针。指向double t 的第一个字节。所以 char *low=(char *)&t; 指向double t 的第一个字节。char *high=(char *)(&t+1)-1;(&t+1) &t还没被强制转换,所以&t + 1 表示指向double t 后的8个字节。(char *)(&t+1)强转后,指向 &t+1表示double t 后的的第1个字节。char *high=(char *)(&t+1)-1; 后退一个(char *) 的距离,即一个字节。指向double t中八个字节中的最后一个字节。char *cp=high;指向double t中八个字节中的最后一个字节。所以最后是:char *low=(char *)&t; 指向double t 的第一个字节。char *cp=high;指向double t中八个字节中的最后一个字节。

最新回答共有2条回答

  • 要减肥的红酒
    回复
    2026-04-03 19:57:34

    哥帮你看,给分我。我先洗澡,有什么问题继续问double t=15。9375; //double占8个字节。&t 则是指向double型的指针(指向8个字节的第一个字节)。char *low=(char *)&t; char 占1个字节,char *low 为指针,指向char型变量的第一个字节,也是唯一一个字节。(char *) &t ::::&t本来是表示8个字节的double的指针。但被强制转换成表示1个字节的char指针。指向double t 的第一个字节。所以 char *low=(char *)&t; 指向double t 的第一个字节。char *high=(char *)(&t+1)-1;(&t+1) &t还没被强制转换,所以&t + 1 表示指向double t 后的8个字节。(char *)(&t+1)强转后,指向 &t+1表示double t 后的的第1个字节。char *high=(char *)(&t+1)-1; 后退一个(char *) 的距离,即一个字节。指向double t中八个字节中的最后一个字节。char *cp=high;指向double t中八个字节中的最后一个字节。所以最后是:char *low=(char *)&t; 指向double t 的第一个字节。char *cp=high;指向double t中八个字节中的最后一个字节。

上一篇 I want to buy some cheap shirts.=I --- --- --- buy some chea

下一篇 《山海经》大概是讲什么?好看么?