[C++ Primer] Passing an array to a function by reference/pointers -- sample
Posted on 2011-06-28 09:31 阿武 阅读(441) 评论(0) 编辑 收藏 举报#include <cstdlib>
#include <iostream>
using namespace std;
// Takes a pointer to the array, and the size of the array.
void print_arr1(const int *arr, size_t size)
{
for (size_t ix = 0; ix != size; ++ix) {
cout << arr[ix] << ' ';
}
cout << endl;
}
// Takes 2 pointers. One to the beginning of the array,
// and one to 1 past the last element - just like iterating through a vector.
void print_arr2(const int *beg, const int *end)
{
for (/* empty */; beg != end; ++beg) {
cout << *beg << ' ';
}
cout << endl;
}
// Takes an array of size 10 and uses it as a const reference.
void print_arr3(const int (&arr)[10])
{
size_t size = 10;
for (size_t ix = 0; ix != size; ++ix) {
cout << arr[ix] << ' ';
}
cout << endl;
}
int main()
{
int arr[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
int *parr = arr;
print_arr1(parr, 10);
print_arr2(parr, parr+10);
print_arr3(arr);
return EXIT_SUCCESS;
}
#include <iostream>
using namespace std;
// Takes a pointer to the array, and the size of the array.
void print_arr1(const int *arr, size_t size)
{
for (size_t ix = 0; ix != size; ++ix) {
cout << arr[ix] << ' ';
}
cout << endl;
}
// Takes 2 pointers. One to the beginning of the array,
// and one to 1 past the last element - just like iterating through a vector.
void print_arr2(const int *beg, const int *end)
{
for (/* empty */; beg != end; ++beg) {
cout << *beg << ' ';
}
cout << endl;
}
// Takes an array of size 10 and uses it as a const reference.
void print_arr3(const int (&arr)[10])
{
size_t size = 10;
for (size_t ix = 0; ix != size; ++ix) {
cout << arr[ix] << ' ';
}
cout << endl;
}
int main()
{
int arr[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
int *parr = arr;
print_arr1(parr, 10);
print_arr2(parr, parr+10);
print_arr3(arr);
return EXIT_SUCCESS;
}