函数声明学习

来源:互联网 发布:ubuntu好玩的游戏 编辑:程序博客网 时间:2024/05/17 21:58

初学习目标跟踪,感觉水很深,大牛很多,自己什么也不会,啥都要学习。代码代码看不明白,思路思路不太懂。现在就认准方面就学,先从C++学习开始,以下是从基本C++学习我觉得需要记得方面,写下来,也供以后翻阅,其中很多都是书上的观点并非本人的。自己先写到Word里,直接粘贴上来可能有错误,欢迎大家提出更正。也可以谈谈自己学习机器视觉方面的经验,让我借鉴一下,哈哈。


函数声明的格式:


type name (arguement1,argument2……)statement

声明一个函数必须以一个数据类型(type)开头,它是函数由return语句所返回的数据类型。没有返回值的类型函数,使用void。

注意:1.当我们调用一个带参数的函数时,我们传递到函数中的是变量的数值而不是变量的本身。

例:

#include<iostream>

using namespace std;

 

int addition (int a,int b)

{

int r;

r=a+b;

return (r);

}

Int main()

{

int x=5,y=3,z;

z=addition(x,y);

cout<<”结果”<<z;

return 0;

}

这个例子在调用addition同时将x和y的值传给它,即5和3而不是两个变量x,y;函数在调用时,变量a和b的值分别为5和3,但在函数内对a和b所做的任何修改都不会影响到变量x和y的值,因为它们只是传递的是它们的数值。

 

注意2.如果函数中的每一个变量的类型后面跟了一个地址附(&),它的作用是指明变量按地值传递的,而不是像通常的那样按数值传递的。当按地址传递变量时,我们传递的是这个变量本身,即我们对函数的变量做修改将会影响到函数外面的被传递的变量。

例:

#include<iostream>

using namespace std;

 

voidy duplicate (int &a,int &b int&c)

{

a*=2

b*=2

c*=2

}

int main()

{

int x=1,y=3,z=7;

duplicate (x,y,z);

cout<<”x=”<<x<<”y=”<<y<<”z=”<<z;

return 0;

}

x=2,y=6,z=14

 

如果没有地址符&,则输出的x,y,z的值将不会改变,仍为1  3  7。

 

注意3. 当声明一个函数的时候我们可以给每一个人参数指定一个默认值。如果当函数被调用时没有给出该参数值,那么默认值将被使用。给出例子方便理解。

例:

#include<iostream>

using namespace std;

int divide (int a ,int b)

{

int r;

r=a/b;

return (r);

}

int main()

{

cout <<divide(12);   //此时a=12,b调用默认值2

cout <<endl;

cout<<divide(20,4); //此时a=20,b=4

return 0;

}

结果为:

6

5

 

 

递归函数(recursivity):

#include<iostream>

using namespace std;

 

long factorial(long a)

{

if (a>1)

return (a*factorial(a-1));

else

return (1);

}

 

int main()

{

long l ;

cou <<”type a number: ”;

cin>> l;

cout <<”!”<<l<<”=”<<factorial(l);

return 0 ;

}

 

结果为:

type a number : 9   (用户输入)

!9=362880

举这个例子说明两点:

1.         我们可以看出以上构造函数都在main函数之前,换句话说就是在第一次被调用之前,如果不是这个顺序会出现编译错误。原因其实就是在调用一个函数之前,函数必须已经被定义。简单说这是c语言的一个规则,遵循就好。

再说点,大部分程序员都会在main或者其他函数之前写出所有被他们调用的函数的代码,那就是在使用前先声明函数的原型定义。声明函数就是对函数在完整定义之前做一个短小重要的声明,以便让编译器知道函数的参数和返回值。

2.         就是在这个里有个局限就是数据类型长整型无法储存12!以上的阶乘值(可以存储12!);因为长整型 long 占用4个字节 无符号的范围可以从0到4294967295;12!值为47900600小于该值故可以存储;但是13!为6227020800超出该范围值故不可以存储。编程需要注意一下吧。

0 0
原创粉丝点击