函数(2)

main函数

C/C++程序从main函数开始执行,执行到main中的return则结束。

函数参数的传递

函数的形参是实参的一个拷贝,且形参的改变不会影响到实参(除非形参类型是数组或引用)。

#include <iostream>
using namespace std;
void Swap (int a,int b)
{
int tmp;
//以下三行将a,b值互换
tmp=a;
a=b;
b=tmp;
cout<<"In Swap:a="<<a<<"b="<<b<<endl; 
 } 
 int main()//(数组或引用) 
 {
 	int a=4,b=5;
	 Swap(a,b);
	 cout<<"After swaping: a="<<a<<"b="<<b;
	 return 0; 
 }
/*
输出:
In Swap:a=5b=4
After swaping: a=4b=5
*/

一维数组作为函数的参数形式

一维数组作为形参时的写法如下:

类型名  数组名[ ]

不用写出数组的元素个数。例如:

void PrintArray( int a[ ]){  }

数组作为函数参数时,是传引用的,即形参数组改变了,实参数组也会改变。

//编写一个求整型数组元素最大值的函数
#include<iostream>
using namespace std;
int a1[4]={4,15,6,9};
int a2[ ]={3,18,56,40,78};
int FindMax(int a[],int length){//length是数组长度 
	int mx=a[0];
	for(int i=1;i<length;++i)
	if(mx<a[i])
	mx=a[i];
} 
 int main(){
 	cout<<FindMax(a1,sizeof(a1)/sizeof(int))<<endl;//sizeof(a1):是a1整个的体积,sizeof(int):一个元素的体积 ,这样写是为了之后方便修改a1的元素个数 
 	cout<<FindMax(a2,sizeof(a2)/sizeof(int))<<endl;
 	return 0;
 } 
//编写一个把int数组所有元素置0的函数
#include<iostream>
using namespace std;
int a1[4]={4,15,6,9};
void SetToZero(int a[],int length)
{
	for(int i=0;i<length;++i)
	a[i]=0;
 }
 int main()
 {
 	SetToZero(a1,4);
 	for(int i=0;i<4;++i)
 	cout<<a1[i]<<",";
 	return 0;
  } 
/*
输出:
0,0,0,0
*/

二维数组作为参数

二维数组作为形参时,必须写明数组有多少列,不用写明行数:

void PrintArray (int a[ ][5])

{

cout<<a[4][3];

}

必须要写明列数,编译器才能根据下表算出元素的地址。

a[i][j]的地址如何计算:

数组首地址+i×N×sizeof(a[0][0])+j×sizeof(a[0][0])(N是数组列数)

形参数组的首地址就是实参数组的首地址

  • 10
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值