数组参数的sizeof

来源:互联网 发布:淘宝小蓓澳洲代购真假 编辑:程序博客网 时间:2024/04/29 03:40

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

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));}
2 0
原创粉丝点击