sizeof的问题

jack_wq 2009-08-21 11:16:36
void Func(char str[100])
{
int len1;
len1 = sizeof(str);
cout<<len1<<endl;
}
这个函数输出结果为什么是4呢?为什么不是100呢?
...全文
50 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
clhposs 2009-08-21
  • 打赏
  • 举报
回复
数组在函数传递过程中隐式转换为指针
zjf30366 2009-08-21
  • 打赏
  • 举报
回复
void Func(char str[100])
数组做函数参数时,已经退化为指针,
又:指针sizeof的大下为4,因为它存储的是只是地址。
wesleyluo 2009-08-21
  • 打赏
  • 举报
回复
你的str是标识一个地址的啦,一个地址是一个double类型的值,一个bouble就是4个字节,所以就是4啦。
xue040506 2009-08-21
  • 打赏
  • 举报
回复
函数参数只是个形参,只声明数据类型,不定义大小,所以此处和char str[]完全一样。尽量不要这样用,可能会被误导
smaltdd 2009-08-21
  • 打赏
  • 举报
回复
所有的函数参数,不管是数组还是指针,都弱化为指针对待

你用sizeof取得是指针的长度,32位系统指针长度就是4

69,336

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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