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是数组列数)
形参数组的首地址就是实参数组的首地址