~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
开发工具与关键技术:VS2015与 C++
撰写时间:2019/05/16
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
函数的作用:任务划分,代码重用
函数的定义:
定义形式:
类型 函数名 (形式参数表)
{
语句序列
}
函数返回值类型:函数体由return语句返回的值的类型。
函数名:用户自定义标识符
形式参数表(形参):逗号分隔参数说明列表
函数体:函数实现代码
例如void test(int a,int b)
{
return 表达式;
return 的作用:返回函数值;不再执行后续语句,一个函数可存在多个return语句;
表达式的返回值的类型与函数类型不一致的时候会强制隐式转换成函数的类型
}
//当函数的返回值是void 的时候,return语句可以省略。
函数的调用:
调用形式:
函数名(实际参数);
函数名:函数入口的地址。
实际参数表:与形参个数/类型/位置一一对应。
例:调用上方test函数
Void main(){ test(1,2); }
函数原型:作用是告诉编译器有关函数的信息,函数名,函数返回值的类型,函数需要接收参数的个数/参数类型/参数的顺序,编译器根据函数原型检查函数调用的正确性。
函数原型形式: 类型 函数名(形参参数表);
void print();//函数原型
void main(){print();}
void print(){cout << “a” << endl;}
math.h头文件中一些常用的数学函数原型
函数原型 | 说明 |
int abs(int n) | n的绝对值 |
double cos(double x) | X(弧度)的余弦 |
double exp(double x) | 指数函数ex |
double fabs(double x) | x的绝对值 |
double fmod(double x,double y) | x/y的浮点余数 |
…… | |
double pow(double x,double y) | x的y次方(xy) |
函数参数的传递:C++有三种传输机制
- 值传递:
- 调用函数时,实参表达式被复制到相应的形参标识对象中,并按形参类型来进行强制转换;
- 函数内对形参的访问/修改都在形参标识符对象进行不影响实参的值;函数返回时形参对象被撤销不影响实参的值;
- 值传递的可以是常量/有确定值的变量或表达式
- 函数返回值通过匿名对象传递
默认参数:默认参数在函数原型定义;默认参数放在一般参数之后。
void test(int a,int b = 10); //b就是默认参数
- 指针参数:
- 形参指针对应的实际参数是地址表达式,即对象的指针
- 实际参数吧对象的地址赋给形参的指针变量
- 被调用的函数通过形参指针间接访问实参所指对象
例:
void test(int *p);
void main(){ int a = 5,*p; p = &a; test(p);cout << a << endl; }
void test(int *p){*p = 10;}
约束形参指针:
void test(int const *p){ int x = 6; *p = 10; //可以 p = &x;//不可以}
- 引用参数:使用应用参数是将实参的引用赋值给形参,那么形参等同于本身。
例:
void test(int &p);
void main(){ int a = 5 ; test(&a);cout << a << endl; }
void test(int &p){ p = 10;}