C++程序设计--第三章内容

提前声明:

本文内容为华北水利水电大学研究生C++课程,如有 侵权请告知,作者会予以删除

1.函数

函数作用 —— 任务划分;代码重用
定义形式    类型  函数名 ( 形式参数表   { 语句序列   }
调用形式    函数名 实际参数表 );

函数体中由 return 语句返回的值的类型。没有返回值其类型为void

实际参数表    与形式参数必须在个数、类型、位置一一对应,可以是表达式

return 语句形式:

return  表达式   或  return (表达式

作用:

1返回函数值

2不再执行后续语句,程序控制返回调用点 一个函数体内可以有多个return 语句

表达式 返回值的类型与函数类型不相同时,自动强制转换成函数的类型

函数原型;函数调用;函数定义;示例:

#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++程序设计--第三章内容_第1张图片

 1.2函数参数传递

C++有三种参数传递机制:值传递;指针传递;引用传递

调用函数时,实参表达式的值被复制到相应形参标识的对象中,并按形参类型强制转换          

1.2.3指针参数   

形参指针对应的实际参数是地址表达式,即对象的指针 

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 ;
}
//以上程序不能正常运行

1.2.4引用参数

当形参为引用参数,调用函数时,形参是实参的别名, 执行函数时,通过别名在实参上操作,  函数返回,实参的别名取消。

你可能感兴趣的:(C++,c++,开发语言)