红联Linux门户
Linux帮助

sizeof 函数参数的一个小问题

发布时间:2012-12-31 08:31:31来源:红联作者:mr_tianwei
void F(char str[100]);
printf("%d",siezof(str));

结果为什么是4,寻求大家的理解,我的理解是参数传递的是地址是整形的。。
文章评论

共有 3 条评论

  1. zyy_hz 于 2013-05-31 14:22:40发表:

    学习了!

  2. Teastore912 于 2012-12-31 18:23:00发表:

    This is really good, thanks for sharing

  3. pl_014 于 2012-12-31 16:49:24发表:

    [i=s] 本帖最后由 pl_014 于 2012-12-31 20:01 编辑 [/i]

    首先,sizeof不是一个函数,而是一个运算符,否则sizeof就不能得到静态数组的长度了,也不会有诸如sizeof(int)的写法,而且C语言中一个名字的函数必须只能传递一种类型参数。
    第二,虽然在函数原型声明中为char str[100],但在进行参数传递时,实际上传递的是指针,所以其结果在32位机下是4。