数组作为函数参数

 

当数组作为函数形参的时候,共有如下三种形式:

1 void printValue(int*)  { /*......*/}
2 void printValue(int []) {/*......*/}
3 void printValue(int [10])  {/*.....*/}

函数不能直接传递数组,但是函数的形参可以写成数组的形式。虽然形参表示方式不同,但是可将使用数组语法定义的形参看做

指向数组元素类型的指针。上面三种定义都是等价的,形参类型实际上都是int*。

如下所示例子,在编译结果中sizeof(a)不论是上面哪三种形式,值都是4,即指针类型的4 byte。

 1 #include<iostream>
 2 using namespace std;
 3 void printValue(const int a[10])
 4 {
 5     cout<<sizeof(a)<<endl;
 6 }
 7 int main(int argc,char *argv[])
 8 {
 9      int t[3] = {0, 1,2};
10      printValue(t);
11      return 0;  
12 }

数组作为函数形参时的情况一定谨记!!

 

posted on 2012-07-18 00:04  micky.zhou  阅读(236)  评论(0编辑  收藏  举报

导航