本文代码转载自 http://www.cnblogs.com/xuhe/p/5704008.html
#include "stdafx.h"
#include<iostream>
using namespace std;
void PrintValues( int (&ia)[2])//注意原本传数组引用的话,还要传入数组的大小
{
for (int i = 0; i != 2; i++)
{
cout << ia[i] << endl;
}
}
int _tmain(int argc, _TCHAR* argv[])
{
int j[2] = { 0, 1 };
PrintValues(j);
return 0;
}
因为编译器要检查数组的实参和形参的大小,所以可扩展性差。为此,我们可以定义模板。
#include "stdafx.h"
#include<iostream>
using namespace std;
template<class T,int N>
void PrintValues( T (&ia)[N])
{
for (int i = 0; i != N; i++)
{
cout << ia[i] << endl;
}
}
int _tmain(int argc, _TCHAR* argv[])
{
int j[2] = { 0, 1 };
PrintValues(j);
return 0;
}