读书人

初学者求帮忙分析个程序!不甚感激!

发布时间: 2013-10-02 13:10:38 作者: rapoo

菜鸟求大虾帮忙分析个程序!!!不甚感激!!!
#include"iostream.h"
void main()
{
int i=700000;
char ch='a';
float f=2.1f;
ch=i;
cout<<ch<<endl;
i=f;
cout<<i<<endl;
f=ch;
cout<<f<<endl;
f=i;
cout<<f<<endl;
} C++
[解决办法]
乱弹琴,只能看汇编了,看看堆栈空间的码流才能确定什么值了,shit~
[解决办法]
正常情况下是不允许这样使用的。类型转换只有在有具体意义的时候才使用。
[解决办法]
这转来转去乱得一通……
[解决办法]
#include"iostream.h"
void main()
{
int i=700000;
char ch='a';
float f=2.1f;
ch=i;
cout<<ch<<endl;
i=f;
cout<<i<<endl;
f=ch;
cout<<f<<endl;
f=i;
cout<<f<<endl;
}

整型占用4个字节,int i=700000;转化为16进制为AAE60。
当ch=i;这个时候就要看是什么系统了,在windows是小端,即内存里存放顺序是60 AE 0A 00,
这个ch指向的内存内容是60,十进制是96,对应的码是`;
所以打印出来就是`;
i=f;//i=2,打印出来就是2
f=ch;//f=96
f=i;//i=2,f=2


[解决办法]
分析啥?越界了又回头重新来啊!
[解决办法]
就几个强转 截断是断来断去 没什么分析的意义
[解决办法]
你的程序 想表达什么没看懂, 你要是测试类型范围,也不像!无语
[解决办法]

引用:
#include"iostream.h"
void main()
{
int i=700000;
char ch='a';
float f=2.1f;
ch=i;
cout<<ch<<endl;
i=f;
cout<<i<<endl;
f=ch;
cout<<f<<endl;
f=i;
cout<<f<<endl;
}

整型占用4个字节,int i=700000;转化为16进制为AAE60。
当ch=i;这个时候就要看是什么系统了,在windows是小端,即内存里存放顺序是60 AE 0A 00,
这个ch指向的内存内容是60,十进制是96,对应的码是`;
所以打印出来就是`;
i=f;//i=2,打印出来就是2
f=ch;//f=96
f=i;//i=2,f=2
这个解释比较合理
[解决办法]
这有隐形转换。。建议楼主 尽量把隐形转换 写成显示的 方便程序阅读。

读书人网 >C++

热点推荐