注册 登录
编程论坛 C++教室

【求助】程序输出什么

piaohai09 发布于 2007-07-16 17:15, 488 次点击
# include <iostream>
int main()
{
using namespace std:
int *pt=new int;
*pt=1001;
cout<<"int";
<<"value="<<*pt<<":location="<<pt<<endl;
double* pd=new double ;
*pd=10000001.0;
cout<<"double";
cout<<"value="<<*pd<<":location="<<pd<<endl;
cout<<"size of pt="<<sizef (pt);
cout<<"size of *pt="<<sizef(*pt)<<endl;
cout<<"size of pd="<<sizef pd;
cout<<"size of *pd="<<sizef(*pd)<<endl;
return 0;
}

5 回复
#2
野比2007-07-16 19:10
这不是你自己写的吧?
using namespace std:
sizef
这样的错误都犯?
你应该是遇到作业题然后自己不运行直接放上来问的.. 这样可不好..

Sample Output:

int value=1001:location=003607A8
doublevalue=1e+007:location=003609E8
size of pt=...
以下部分省略, 请自己动手
#3
piaohai092007-07-17 08:22
回复:(piaohai09)【求助】程序输出什么

好像不对哦,不是的我对这个题目有疑问
你说的我刚好知道!!
就是下面的他说
size of pt=4,size of *pt=4;
size of pd=4,size of *pt=8.
这个 我不太明白 你能 帮我解答下吗谢谢

#4
jiangdingfen2007-07-17 09:15
这个好理解啊,因为在32位机中,地址是用一个32位(4字节)来存放的,所以当你定义了一个指针时,不管它指向的类型,指针本身的大小就是4,不会随指向类型不同而不同。而想知道指针所指的内容的大小就要看其具体指向的类型了。如下:
1、int *pt = new int;//sizeof(pt)=4,sizeof(*pt)=sizeof(int)=4
2、double *pt = new double;//sizeof(pt)=4,sizeof(*pt)=sizeof(double)=8
3、int *pt = new int[100];//sizeof(pt)=4,sizeof(*pt)=sizeof(int*)=4
#5
piaohai092007-07-17 09:40
谢谢指教我明白了 ,我是初学者,以后还要大家多多指点啊 !!
谢谢你们
#6
野比2007-07-18 19:10

问题解决了就好.
不过以后还是推荐你运行一边, 然后把能够通过编译的程序贴上来,这样解答的人也好把注意力集中到解决问题上.

1