|
一个好的结构化程序是由多个功能独立的函数构成的,而提供给用户的接口参数就是由定义函数时的形参决定的。因此,函数的参数定义是接口好坏的关键。除了采用值传递外,引用传递或地址传递也是函数参数传递的重要形式。
|
|
|
|
|
|
上述程序的执行结果为2,1。上述例子也表明要改变调用程序中变量的值,必须传递变量的地址。
|
|
|
|
下面通过一个实现n个整数排序的例子来说明数组作为参数传递。
|
|
|
|
该实例给出了参数传递的方法,void selectsort(int a[],int n)也可以改为void selectsort(int *a, int n),同时,selectsort(a,10)也可以改为selectsort(p,10)。
|
|
|
本质上,调用函数将数组的首地址传送给被调用函数就是将各数组元素的地址传送给被调用函数,因而可由被调用函数来改变调用函数中数组元素的值。
|
|
|
|
将一个字符串从一个函数传递到另一个函数,可以用地址传递的办法,即用字符数组名做参数或用指向字符串的指针变量做参数。在被调用的函数中可以改变字符串的内容,在主调函数中可得到改变的字符串。
|
|
|
下面用函数调用实现字符串的复制来说明字符串指针作为函数参数的使用方法。代码如下:
|
|
|
|
|
|