第七章--函数
乐趣在于发现。编程最大的乐趣在于编写自己的函数
使用C++函数步骤:
1.函数定义
2.函数原型
3.调用函数
函数分为两类:有返回值和没有返回值的函数。void函数表示没有返回值
void funcitonName(parameterList) { statement(s) return; }
#include <iostream> using namespace std; void apple(int); //函数原型,无返回值。可以没有变量名,必须有类型 double orange(double x); //函数原型, 返回double类型 int main() { apple(5); double volumn = orange(6); cout << volumn << endl; cin.get(); } void apple(int n) //函数定义 { cout << "hello\n" ; } double orange(double x) { return x * x; }
函数指针:
1.获取函数地址
2.声明函数指针
3.使用函数指针来调用函数
获取函数地址很简单:apple()是一个函数, apple就是该函数的地址
double apple(int); //函数原型 double (*p)(int); //函数指针 p = apple; //将apple()函数的地址赋值给指针
注意,函数类型和返回类型必须与指针p一致,否则出错,例如:
double orange(double); //一个函数原型
int banana(int);//另一个函数原型
double (*p)(int);
p = orange; //非法
p = banana; //非法
void person(int n, double (*p)(int)); //函数原型
person(10, apple); //使用函数,传递apple()的地址
指针调用函数:
double apple(int); //函数原型 double (*p)(int); //函数指针 p = apple; //将apple()函数的地址赋值给指针 double x = apple(4); //使用函数名 double y = (*p)(5); //使用指针p double y = p(5);
注意:p(5)等价于(*p)(5)
指针与const
第一种:指针指向常量对象
第二种:指针本身声明为常量
int apple = 10; int banana = 20; const int * p = &apple; *p = 20;//非法 *p = &banana;//合法的
*p是const不能修改,p不是const可以指向别的变量
int apple = 10; int banana = 20; int * const p2 = &apple; *p2 = 20;//合法 *p2 = &banana;//非法的
*p不是const可以修改值,p是const不能指向别的变量
当然也可是声明指向const对象的const指针:
int apple = 10; const int * const p = &apple;
这里p和*p都是const,都无法修改