015day(函数的学习)
来源:互联网 发布:淘宝水军平台 编辑:程序博客网 时间:2024/06/04 19:48
172210704111-陈国佳总结《2017年10月25日》【连续015天总结】
标题:函数的学习
内容:A.观看MOOC6.1,6.2;
B.(a).函数定义 返回值类型 函数名(参数1类型 参数1名称,...........){ 语句组(即“函数体”) } 无类型名时可写“void”;
调用时 函数名(参数1,参数2,.....) ;return 返回值; 无时:return ;(return是函数的出口,函数中可有多个return;函数的返回值与结束函数的return的返回值相同; 如:int Max(int x,int y) //求两个整型函数的较大值,x ,y是形参
{
if(x > y)
return x;
return y;
}
int main()
{
int n =Max(4,6);//4,6是实参
cout << n <<","<<Max(20,n)<<endl;
return 0; 运行后输出结果为6,20;同时还练习了另外两个函数;其中一个为第二个函数调用第一个函数;
如:#define EPS 0.001
double Sqrt(double a)//求平均值
{
//此处见008day的迭代公式;
}
double Distance(double x1,double y1,double x2,double y2)//求两点间距离
{
return Sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
}
(b).一般来说函数的定义必须出现在函数调用语句之前;也可以在调用语句前加上声明来代替(当定义A时,A内部调用B,而B内部调用了A,可用声明代替);
声明:int Max(int a,int b);(注意有“;")
main函数:C/C++程序从main函数开始执行,到return结束;
(c).函数参数的传递:函数的形参是实参的一个拷贝,且形参的改变不会影响到实参;(除非形参类型是数组,引用或对象)
例: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;
}运行后如下图所示:
其中,Swap函数中的a,b是形参,所以即使a,b改变了,实参a,b也不会有变化;
(c).一维数组作为函数参数: 类型名 数组名[ ]([ ]中可不写元素个数)
注意:数组作为函数参数是传引用的,即形参数组改变,实参数组也要变;
如:int a1[4] = {4,15,6,9};
int a2[]={3,18,56,40,78};
int FindMax(int a[],int length){
int mx = a[0];
for(int i = 1;i<length;++i)
if (mx<a[i])
mx=a[i];
return mx;
}
int main(){
cout<<FindMax(a1,sizeof(a1)/sizeof(int))<<endl;
cout<<FindMax(a2,sizeof(a1)/sizeof(int))<<endl;
return 0;
} 输出15,56;
例: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;即实参发生了改变;
当以二维数组作为函数参数时;必须写列数;a[ ][ N ]
根据元素地址公式(见014day),写明列数,编译器才能算出地址;数组首地址+i*N*sizeof(a[0][0])+j*sizeof(a[0][0])
明日计划:学习递归初步;
- 015day(函数的学习)
- [微积分学习]Day 5.函数在无穷远处的极限
- 037day(动态内存分配和内联函数,重载函数,函数参数缺省值的学习)
- 024day(void指针和内存操作函数及函数指针的学习)
- 048day(类型转换构造函数和析构函数的学习)
- 033day(multiset的学习)
- 041day(熄灯问题的程序和构造函数的学习)
- 『算法学习笔记』9th day. 循环结构 & 计时器函数的使用
- 《从零开始学Swift》学习笔记(Day 20)——函数中参数的传递引用
- 《从零开始学Swift》学习笔记(Day 20)——函数中参数的传递引用
- 047day(复制构造函数和递归例题(波兰表达式)的学习)
- [微积分学习]Day.2 极限的概念
- [微积分学习]Day 6.数列的极限
- 记录自己学习的日子day-01
- 007day(if,switch语句的学习)
- 014day(二维数组的学习)
- 019day(字符串库函数的学习)
- 027day(简单排序的学习)
- 字符串相关面试题
- STM32开发环境的搭建
- swift学习笔记2-串、循环、分支语句
- Linux的软连接与硬连接 ln -s
- 《完美Qt》之QString使用实例
- 015day(函数的学习)
- IOS SDK 接入 踩坑
- putty windows上传文件到linux服务器 & 从linux服务器 下载文件到 windows
- 详解YUV数据格式
- 【每日算法】lua实现快排算法
- List<T>常用的一些方法
- mkfs.jffs2参数详解
- sublime text ctags 报错 ctagsplugin.py unicodeerror
- anaconda安装Jupyter