Reference To Array And Pointer To Array
2008-02-23 09:56
549 查看
数组引用和数组指针和两种非常优美而又用途广泛的语言设施,但很多其名气不是很大,因为这两设施C++中新引入的,大家一般不怎么注意的.
下面通过一小段代码,来展示其用法.
#include <iostream>
using namespace std;
template <class T, int size>
T _min(T (&r_a)[size]) // 函数模板的形参是数组引用
...{
T min_val = r_a[0];
for (int i = 1; i < size; ++i)
if (min_val > r_a[i]) min_val = r_a[i];
for (int i = 0; i < size; ++i)
r_a[i] = 1;
return min_val;
}
template <class T, int size>
T _min(T (&p_a)[size]) // 函数模板的形参是数组指针
...{
T min_val = (*p_a)[0];
for (int i = 1; i < size; ++i)
if (min_val > (*p_a)[i]) min_val = (*p_a)[i];
for (int i = 0; i < size; ++i)
(*p_a)[i] = 1;
return min_val;
}
int main()
...{
int a[] = ...{2,3,5,3,67,123,4};
double b[] = ...{2.1, 4.23, 56.32, 2.0, 1.2};
int (&ria)[5] = a; // 定义数组引用
double (*pda)[5] = &b; // 定义数组指针
for (int i = 0; i < 5; ++i)
cout << ria[i] << " "; // 使用数组引用
cout << " ";
for (int i = 0; i < 5; ++i) ...{
cout << (*pda)[i] << " "; // 数组指针
cout << " ";
cout << _min(a) << " "; // 数组引用作为函数的实参
cout << _min(&b) << " "; // 数组指针作为函数的实参
system("pause");
return 0;
}
下面通过一小段代码,来展示其用法.
#include <iostream>
using namespace std;
template <class T, int size>
T _min(T (&r_a)[size]) // 函数模板的形参是数组引用
...{
T min_val = r_a[0];
for (int i = 1; i < size; ++i)
if (min_val > r_a[i]) min_val = r_a[i];
for (int i = 0; i < size; ++i)
r_a[i] = 1;
return min_val;
}
template <class T, int size>
T _min(T (&p_a)[size]) // 函数模板的形参是数组指针
...{
T min_val = (*p_a)[0];
for (int i = 1; i < size; ++i)
if (min_val > (*p_a)[i]) min_val = (*p_a)[i];
for (int i = 0; i < size; ++i)
(*p_a)[i] = 1;
return min_val;
}
int main()
...{
int a[] = ...{2,3,5,3,67,123,4};
double b[] = ...{2.1, 4.23, 56.32, 2.0, 1.2};
int (&ria)[5] = a; // 定义数组引用
double (*pda)[5] = &b; // 定义数组指针
for (int i = 0; i < 5; ++i)
cout << ria[i] << " "; // 使用数组引用
cout << " ";
for (int i = 0; i < 5; ++i) ...{
cout << (*pda)[i] << " "; // 数组指针
cout << " ";
cout << _min(a) << " "; // 数组引用作为函数的实参
cout << _min(&b) << " "; // 数组指针作为函数的实参
system("pause");
return 0;
}
相关文章推荐
- Reference to array and hash
- reference to function and pointer to function
- array,pointer and reference
- pointer to ref of an array, and to the func that return a ref of an array
- What are the differences between a pointer variable and a reference variable in C++?
- Reference and array clone
- How to Dual Boot Windows and Linux on a Fake RAID Array
- “标准容器中存放引用”与“指向引用的指针(pointer to reference)”
- Difference between pointer variable and reference variable in C++
- @121. Best Time to Buy and Sell Stock----Array----Easy---20160926
- error C2265: '<Unknown>' : reference to a zero-sized array is illegal
- undefined reference to `__sync_bool_compare_and_swap_4
- Go: using a pointer to array
- \sdk\include\wspiapi.h(47) : error C2265: '<Unknown>' : reference to a zero-sized array is illegal
- (Array)121. Best Time to Buy and Sell Stock
- fix android build error : undefined reference to __gxx_personality_v0 and __cxa_end_cleanup
- undefined reference to `gzopen' 'gzwrite' and 'gzclose'
- How do I declare and use a pointer to a class member function?
- Custom tool error: Failed to generate code for the service reference ××××××. Please check other error and warning messages for details.
- c pointer and array