Chinaunix首页 | 论坛 | 博客
  • 博客访问: 641107
  • 博文数量: 54
  • 博客积分: 3812
  • 博客等级: 上校
  • 技术积分: 992
  • 用 户 组: 普通用户
  • 注册时间: 2007-04-16 20:53
文章分类

全部博文(54)

文章存档

2010年(10)

2009年(24)

2008年(20)

分类: C/C++

2008-11-13 21:55:19

    我们知道,在C/C++中,向一个函数传递数组时,实际上传送的是这个数组的首地址,也即是一个指针类型。所以,在函数中,我们没有办法知道这个传递进来的数组的长度到底为多长,一个普遍的方法就是再增加一个参数,来记录传递进来的数组的长度。
 
    不过在C++中,使用模板机制,可以很好地解决这个问题,如下面的代码所示:
 

#include <iostream>
using namespace std;

template<class T, int N>
void array(T (&param)[N])
{
        cout << "N= " << N << endl;
}

int main()
{
        int i[100];
        double d[20];
        char c[6];

        array(i);
        array(d);
        array(c);

        return 0;
}

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