<2026年6月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

统计

  • 随笔 - 1
  • 文章 - 2
  • 评论 - 0
  • 引用 - 0

常用链接

留言簿(1)

随笔档案

文章分类

文章档案

搜索

  •  

最新评论

数组形参
当使用数组做函数参数时,和其他类型一样,数组形参可定义为引用或非引用。大部分情况下,数组以普通非引用类型传递,这时数组名会自动转化为指针。一般来说,非引用的形参在实际的实参传递过程中会建立一个实参的副本,但是在传递数组的过程中,由于实参是指向数组第一个元素的指针,所以形参复制的是这个指针的值而不是整个数组。 
  
  // a example
  void f(int *);                // pointer
  void f(int array[]);       // array
  void f(int array[5]);     // array with a size

可知上面的三种定义是等价的。对于后两种定义函数实际操纵的是指针的副本,因此不会修改实参指针的值。但是函数可以通过指针修改所指向的数组元素的值。通过指针形参所做的任何改变都是在修改数组元素本身。不需要修改数组的元素时,应将形参定义为指向const对象的指针:

  // a example
  void f(const int *);       // pointer to const object

数组形参可定义为引用传递。这样的话,编译器不会将数组转化为指针,而是传递数组的引用。

  // a example
  void f(int (&array) [5]);

posted on 2009-03-02 13:48 易小寒 阅读(223) 评论(0)  编辑 收藏 引用 所属分类: Data Structure


只有注册用户登录后才能发表评论。
相关文章:
网站导航:   博客园   博客园最新博文   博问   管理