细心的小伙伴可能已经注意到,从这一节开始,我更改了这系列的名称,我们也进入了一个全新的章节
过程化编程
一、函数性质
说到函数,大家可能想到了数学里面的函数,其实二者的性质都差不多,只不过C++中函数描述的是操作序列,虽有求值表现,但更强调的是过程性。
分类:一共有四类:
返回类型func(参数列表)
返回类型func()
void func(参数列表)
void func()
有返回类型的函数可以参加表达式运算,或者直接赋值给对应类型的变量,构成表达式语句。
double s= sin(b)+1;
s=cos (c)/2;
无返回类型的函数,不能一直的形式赋值给其他变量或参加运算,只能调用成一条语句。
print();//OK
int t = print();//no
需要时,有返回类型的函数也可以像无返回类型函数一样单独构成语句。
char s1[30];
char s2[]= "hello";
strcpy(s1,s2);//单独构成语句,完成复制工作
cout<<strcpy(s1,s2);//复制,并且返回值提供输出
二、函数黑盒
函数是独立的,它反应了一个过程功能的特性,从理论上来说,他只对输入输出负责,计算在被封闭的黑盒中进行。函数被调用完之后,一切现场恢复,因此也意味着函数调用的可重复性,其结果不随时间、地点而转移。
其性质还指只知道其外在的弄能而不知道其内部的细节。
三、传递数组
在C++里,传递数组方式如下:
void myfunction (int *b,int size);
{
。。。。。。
}
int mian ()
{
int a[]={3,5,7,9,11};
myfunction(a,sizeof(a)/sizeof(a[0]));
}
可见,数组只能通过传递起始地址,来实现对于该数组的调用。