正文

C++个人回顾小结: 函数(一)2006-11-23 20:50:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/edwardguo/20684.html

分享到:

今天复习了类型定义和函数。

先所类型定义:

举个例子

typedef double wages,bonus;

以后可以用wages,bonus来定义周薪和月薪了

比如:

wages weekly; bonus monthly;

其他的定义方法:

例如:

typedef char * string;

typedef string months[3];

months spring = {"February","March","April"};

关于函数:

函数的有定义和说明的两件工作,如果定义在先,调用在后,调用前可以不用说明;如果定义在后,调用在先,就需要说明:

例如:

#include<iostream.h>

void fun1();

void main()

{

     cout<<"This is fun1"<<endl;

    fun1();

}

void fun1()

{

    cout<<"fun1 is executed."<<endl;

}

或者这样

#include<iostream.h>

void fun1()

{

    cout<<"fun1 is executed."<<endl;

}

void main()

{

     cout<<"This is fun1"<<endl;

    fun1();

}

函数的传值调用,函数的传址调用,函数的引用调用

分别如下:

void swap(int x, int y)

{

    int temp;

    temp=x;

    x=y;

    y=temp;

}

 

void swap(int *x, int* y)

{

    int temp;

    temp=*x;

    *x=*y;

    *y=temp;

}  

void swap(int &x, int &y)

{

    int temp;

    temp=x;

    x=y;

    y=temp;

}

如果调用方式为swap(a,b);

后两者交换a,b的值。第一种方式不交换。

关于设定函数的默认值:

C++编译器给函数参数赋值顺序为从左向右,所以可以从最右边开始为参数设定默认值:

比如:

int m=10;

int add(int a, int b, int c, int d=10, int e=m)

{

    return (a+b+c+d+e);

}

调用z=add(1,2,3)时,输出就为26

注意:参数当中也可以用表达式进行赋值,比如本例使用了:int e=m

使用数组作为函数参数:

1. 实参形参都用数组:

int a[8]={1,2,3,4,5,6,7};

void fun(int b[],int n){...};

fun(a,8);

数组a和数组b在内存当中共享一个存储区,所以a当中的内容和b当中是一致的,会根据函数fun发生变化。

2.形参和实参都用指针:

int a[8]={1,2,3,4,5,6,7,8};

void fun(int *p,int n){...};

可以如下调用

fun(a,8);

或者:

int *q=8;

fun(q,8);

3.实参用数组名,形参用引用

例:

typedef int array[8];

int a[8]={1,2,3,4,5,6,7};

void fun(array &b,int n)// or void fun(int &b[8],int n);个人理解可以这样,书上是第一种

调用使用

fun(a,m);

 

 另外像内联函数是用函数体替换代码,不是到指定位置调用函数,必须在调研之前实现以及像函数重载概念之类我在这里就不罗唆了。

 

 

 

阅读(3983) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册