sizeof问题

kpaxstudio 2004-09-01 11:23:21
#include <iostream.h>
void fun(char *p)
{
cout<<sizeof(p)<<endl;
}
void main()
{
fun("abcde",k);
}

结果是4,而不是6,这是为什么?
...全文
123 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
lwj_dxy 2004-09-01
  • 打赏
  • 举报
回复
up
Paris_Luo 2004-09-01
  • 打赏
  • 举报
回复
你求的是指针大小,当然是4
cn0cn 2004-09-01
  • 打赏
  • 举报
回复
看看SIZEOF的介绍。

http://www.vwind.com/blog/show.php?id=1&dirid=1&page=1
kpaxstudio 2004-09-01
  • 打赏
  • 举报
回复
那如何用sizeof测输入的几个字的大小呢?
waini11 2004-09-01
  • 打赏
  • 举报
回复
如果是sizeof(char*) 结果会是多少呢
dick4610 2004-09-01
  • 打赏
  • 举报
回复
这个问题以前也有人问,32位系统中指针大小是4字节
qwertasdfg123 2004-09-01
  • 打赏
  • 举报
回复
同意楼上。用strlen(p)吧
北极猩猩 2004-09-01
  • 打赏
  • 举报
回复
很简单啊,你获得的是指针p的大小,在32位系统中指针大小为4字节
sea373 2004-09-01
  • 打赏
  • 举报
回复
顶下
answerear 2004-09-01
  • 打赏
  • 举报
回复
p是个指针,指针是个地址,在16位系统中,地址是2字节,所以sizeof(p)=2bytes.在32位系统中,地址是4字节,所以sizeof(p)=4bytes.要求字符串长度,用strlen(p)才对。
Tycool 2004-09-01
  • 打赏
  • 举报
回复
32位系统,当然指针本身的size是4,
sizeof(char*)等于4
BTW: fun("abcde",k); 怎么和函数实现不同?笔误吧?

64,648

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧