本文内容为华北水利水电大学研究生C++课程,如有 侵权请告知,作者会予以删除
函数体中由 return 语句返回的值的类型。没有返回值其类型为void
实际参数表 与形式参数必须在个数、类型、位置一一对应,可以是表达式
return 语句形式:
return 表达式 或 return (表达式 )
作用:
1返回函数值
2不再执行后续语句,程序控制返回调用点 一个函数体内可以有多个return 语句
3 表达式 返回值的类型与函数类型不相同时,自动强制转换成函数的类型
函数原型;函数调用;函数定义;示例:
- #include
- using namespace std ;
- double max( double, double ) ; // 函数原型
- //double max( double x, double y =2) ; // 函数原型 y的默认值为2
- int main()
- { //double max( double, double ) ; // 函数原型也可以在此定义
- double a, b, c, m1, m2 ;
- cout << "input a, b, c :\n" ;
- cin >> a >> b >> c ;
- m1 = max( a, b ) ; // 函数调用
- m2 = max( m1, c ) ;
- cout << "Maximum = " << m2 << endl ;
- }
- double max( double x, double y ) // 函数定义
- { if ( x > y ) return x ;
- else return y ;
- }
C++有三种参数传递机制:值传递;指针传递;引用传递;
调用函数时,实参表达式的值被复制到相应形参标识的对象中,并按形参类型强制转换
形参指针对应的实际参数是地址表达式,即对象的指针
- void func ( int * p )
- { int a = 10 ;
- *p += a ;
- p = &a;
- *p = *p + a ;
- cout << "*p = " << *p << endl ;
- cout << "a = " << a << endl ;
- }
- //以上程序正常运行
- void func (const int * p )
- { int a = 10 ;
- *p += a ;//不能修改常对象
- p = &a;
- *p = *p + a ;//不能修改常对象
- cout << "*p = " << *p << endl ;
- cout << "a = " << a << endl ;
- }
- //以上程序不能正常运行
- void func (int *const p )
- { int a = 10 ;
- *p += a ;
- p = &a;//不能修改指针常量
- *p = *p + a ;
- cout << "*p = " << *p << endl ;
- cout << "a = " << a << endl ;
- }
- //以上程序不能正常运行