| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 347 人关注过本帖
标题:关于形参所占的字节数sizeof()
只看楼主 加入收藏
tainert
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2015-8-2
结帖率:0
收藏
已结贴  问题点数:5 回复次数:4 
关于形参所占的字节数sizeof()
# include <stdio.h>
# define size 6
void func_1 (const char a [size])
{
    printf ("char a[size]: %d\n", sizeof (a));
}
void func_2 (char a [10000])
{
    printf ("char a [10000]: %d\n", sizeof (a));
}
void func_3 (const char a[])
{
    printf ("char a[]: %d\n", sizeof (a));
}
void func_4 (const char *a)
{
    printf ("char *a: %d\n", sizeof(a));
}

int main (void)
{
    char a[size] = {'a', 'b', 'c', 'd', 'e','f'};
    char *p = a;
    printf ("sizeof (a):\n");
    func_1(a);
    func_2(p);
    func_3(a);
    func_4(p);
    return 0;
}


结果:
sizeof (a):
char a[size]: 4
char a [10000]: 4
char a[]: 4
char *a: 4

为什么输出结果为4.而不是6;想了很久没有想出来,特来求助。
搜索更多相关主题的帖子: include 
2015-08-02 17:15
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:5 
书上有没有告诉你数组以参数形式传递会蜕化为指针?指针的尺寸是多少?

授人以渔,不授人以鱼。
2015-08-02 17:17
tainert
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2015-8-2
收藏
得分:0 
难道说都是指数组的首地址,也就是指针,所以结果才为4?
2015-08-02 17:22
tainert
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2015-8-2
收藏
得分:0 
回复 2楼 TonyDeng
谢谢哈。刚去上个厕所,就想通了!
2015-08-02 17:23
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
是一个指针,不要总说什么首地址、地址的。

授人以渔,不授人以鱼。
2015-08-02 17:25
快速回复:关于形参所占的字节数sizeof()
数据加载中...
 
   



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

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