c++学习-基础-函数参数传递 - 数组形参

本文详细介绍了C++中函数参数传递数组的不同方式,包括使用指针、引用以及多维数组的传递。通过实例展示了如何避免数组长度引起的误会,并探讨了传递数组给函数的常见方法,如使用指针、引用和范围。同时,还涵盖了字符数组(C风格字符串)的处理。
摘要由CSDN通过智能技术生成
/*
	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;
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值