Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1469048
  • 博文数量: 218
  • 博客积分: 6394
  • 博客等级: 准将
  • 技术积分: 2563
  • 用 户 组: 普通用户
  • 注册时间: 2008-02-08 15:33
个人简介

持之以恒

文章分类

全部博文(218)

文章存档

2013年(8)

2012年(2)

2011年(21)

2010年(55)

2009年(116)

2008年(16)

分类: C/C++

2009-06-15 11:08:10

数组的引用
转:http://www.cppblog.com/walkspeed/archive/2007/03/10/19525.html

        如下定义就得到一个数组的引用==》引用是别名,不是类型,不占用相应的存储空间,所以不能建立相应的引用的数组。
        类型名 (&变量明)[N];
       
        实例
        int int_array[10];
        int (&int_ref)[10] = int_array;
        这样就得到了一个数组的引用

        在函数的声明中用数组的引用定义,就不怕数组退化(数组退化成指针)了。如下
        for_each( int (&int_ref)[10] )
        {
                 for( int i=0; i<10; ++i )
                         std::cout << int_ref[i] << std::endl;
         }

         int main( int argc, char* argv[] )
         {
                 int int_array[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }
        
                 for_each( int_array );
                 return 0;
          }

          在上面的代码中,如果你传入不是10个尺寸的数组,是编译通不过的。代码的安全性提高了。   

         想要定义一个数组引用类型,方法如下
         typedef 类型明 (&数组引用类型明)[N];

         实例
         typedef int (&Array_Ref)[10];
         Array_Ref就是一个数组的引用类型了。

阅读(577) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~