标题:求助一个关于sizeof的问题
取消只看楼主
moonwalker
Rank: 1
等 级:新手上路
威 望:1
帖 子:909
专家分:2
注 册:2007-3-2
 问题点数:0 回复次数:1 
求助一个关于sizeof的问题

看看下面的程序(在VC6.0上通过):
#include <stdio.h>
void example(char acHello[])
{
printf("%d",sizeof(acHello));
return;
}

void main()
{
char acHello[]="hello";
example(acHello);
getchar();
return;
}
运行结果是4,而改为下面的程序:
void main()
{
char acHello[]="hello";
printf("%d",sizeof(acHello));
//example(acHello);
getchar();
return;
}
运行结果是6,为什么不一样?
哪位大虾帮我解释一下,我对sizeof这块不是很明白,还有谁对C语言的字节对齐比较明白,能大致讲一下,或者
提供资料出处,感激不尽!

搜索更多相关主题的帖子: sizeof 
2007-10-18 22:36
moonwalker
Rank: 1
等 级:新手上路
威 望:1
帖 子:909
专家分:2
注 册:2007-3-2
得分:0 
在example函数的定义中
void example(char acHello[])已经说明了参数是个数组了啊
我觉得sizeof应该计算从数组首元素指针开始到‘\0’的字节数才对啊。
所以应该还是有某个参数传递的规则我不清楚!

“视频教程网”免费提供教学资源
C不限制你的自由!
条件是自己承担滥用自由的恶果!
2007-10-18 23:04



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-178892-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.595482 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved