/*
Description: 函数参数传递 -- 数组形参
三种传递数组的写法
形参的长度会引起误会
数组实参 - 数组会悄悄地转化为指针
通过引用传递数组
多维数组的传递
传递给函数的数组的处理 - 三种方法
*/
#include<iostream>
using namespace std;
// x是一个指针,指向数组的第一个元素 最常用的方法 传递int类型的数组
void printValues(const int * x,size_t size)
{
for(size_t i = 0;i != size;++i)
{
cout<<x[i]<<" ";
}
cout<<endl;
}
void printValues_2(const int x[],size_t size)
{
for(size_t i = 0;i != size;++i)
{
cout<<x[i]<<" ";
}
cout<<endl;
}
// 这个100写不写都是一样的,
void printValues_3(const int x[100],size_t size)
{
for(size_t i = 0;i != size;++i)
{
cout<<x[i]<<" ";
}
cout<<endl;
}
void printValues_4(int (&x)[10]) //这个10是必须写的 这个X是一个引用,它引用的是一个数组,数组里有10个数 不太灵活
{
for(size_t i = 0;i != 10;++i)
{
cout<<x[i]<<" ";
}
cout<<endl;
}
// 传递二维数组 x是一个指针,指向一个有很多行的数组的第一行,每一行是10个int类型的数,一共有rowSize行
void printValues_5(int (*x)[10],size_t rowSize)
{
for(int i = 0; i != rowSize;++i){
for(int j = 0;j != 10;++j){
cout<<x[i][j]<<" ";
}
cout<<endl;
}
}
void printVlaues_6(const int *beg,const int *end)
{
while(beg != end)
{
cout<<*beg++<<" ";
}
cout<<endl;
}
// 传递字符数组(c风格字符串),最后一个字符是null
// x是指针,指向第一个字符
void printChars(const char *x)
{
while( *x != NULL)
cout<<*x++;
cout<<endl;
}
int main()
{
int arr[10] = {0,1,2,3,4,5,6,7,8,9};
printValues(arr,10);
printValues_2(arr,10);
printValues_3(arr,10);
printValues_4(arr);
int m[][10] =
{
{0,1,2,3,4,5,6,7,8,9},
{0,1,2,3,4,5,6,7,8,9},
{0,1,2,3,4,5,6,7,8,9},
{0,1,2,3,4,5,6,7,8,9},
{0,1,2,3,4,5,6,7,8,9},
};
printValues_5(m,5);
printVlaues_6(arr,arr+10);
char s[] = "Hello C++!";
printChars(s);
return 0;
}
c++学习-基础-函数参数传递 - 数组形参
最新推荐文章于 2024-04-12 02:44:49 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)