牛骨文教育服务平台(让学习变的简单)
博文笔记

数组参数的sizeof

创建时间:2015-05-30 投稿人: 浏览次数:1135

如下代码中,把数组作为函数参数时,函数中需要计算数组大小:

void copy(int a[],int b[])
{
    memcpy(b,a,sizeof(a));
}

这段代码的本意是将a中的所有字符拷贝到B中,但运行时会发现不能得到正确结果。因为当数组作为形参时,在函数内退化为指针,因此sizeof(a)返回的是指针的大小,而不是数组a的大小。正确的做法将数组的引用作为参数:

void copy(int (&a)[],int b[])
{
    memcpy(b,a,sizeof(a));
}
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。