<1>:下面的输出结果是12.3457.我不明白, 双精度字宽8,15有效位,它为啥偏要只显示7位数,要截取掉后面的?始终看不明白,
#include <iostream.h>
void main()
{
double a=12.3456789;
cout<<a<<endl;
}
<2>:第2题
#include <iostream.h>
void main()
{
int a[]={5,8,7,6,2,7,3};
int y,*p=&a[1];
y=(*--p)++;
cout<<y<<"\n";
}
#include <iostream.h>
void main()
{
int a[]={5,8,7,6,2,7,3};
int y,*p=&a[1];
y=(*--p)++;
cout<<y<<"\n";
}
最后结果y=5是正确的,可我看不懂y=(*--p)++;这句。
我理解是(*--P)应该等于5,(*--P)++;然后就变成了Y=*5++;*5++的地址当然等于8了
我觉得最后应该Y=8才对,可书上和编译器却说是5,不能理解,我到底糊涂在什么地方呢。
《3》
int *p
p=new int[10]
if(!p) //从这句话到结束我不能看懂,IF语句在这里有什么用,他起的作用是什么呢
{
cout<<""; //P为真,它输出什么,P为假,它又输出什么呢,不明白
exit(1); //搞不明白这个题咋样运行的,特别是这个IF语句。
}
for (int i=0;i<10;i++)
p[i]=i;
...
delete [10]p;
看了2天的基础,产生了几个这样的问题,决不是我有了问题就来问,自己不去思考。
而是我想不出来才来问的,
请大家给点意见~~~~~~谢谢~~~
[此贴子已经被作者于2005-10-30 17:39:30编辑过]