2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > c语言自定义函数实参和形参 C语言 函数的定义 调用函数 实参和形参 函数的声明和

c语言自定义函数实参和形参 C语言 函数的定义 调用函数 实参和形参 函数的声明和

时间:2019-08-20 13:28:50

相关推荐

c语言自定义函数实参和形参 C语言 函数的定义 调用函数 实参和形参 函数的声明和

1.函数就是功能,函数名字应反映其代表的功能。

2.一个C程序可由一个主函数和若干个其他函数构成。函数是可以调用的,但不能调用main函数。main函数是被操作系统调用的。

(一)定义函数的方法。

(1)定义无参函数的一般形式为:

类型名 函数名()

{

函数体

}

类型名 函数名(void)

{

函数体

}

函数体应包括声明部分和语句部分。

(2)定义有参函数

一般形式为

类型名 函数名 (形式参数表列)

{

函数体

}

函数体包括声明部分和语句部分。

(3)定义空函数

类型名 函数名()

{ }

例如:

void dummy()

{ }

(二)调用函数

print-star(); //调用无参函数

c=max(a,b);//调用有参函数

一般形式为:

函数名 (实参列表)

如果是调用无参函数,则实参列表可以没有,但括号不能省略。

函数参数

函数调用作为另一个函数调用时的参数。例如:m=max(a,max(b,c))

调用函数并不一定要求包括分号(如 print_star();)

(三)实参和形参

在定义函数时函数名后面括号中的变量名称为“形式参数”。

在主调函数中调用一个函数时,函数后面括号中的参数称为“实际参数”,实际参数可以是常量,变量,表达式。

(1)在调用函数的过程中,系统会把实参的值传递给被调用函数的形参。或者说,形参从实参得到一个值。

(2)实参与形参的类型应相同或赋值兼容。

(3)调用结束,形参单元被释放。注意:实参单元应保留并维持原值,没有改变。

(4)实参想形参的数据传递为值传递,单向传递,只能由实参传给形参。实参和形参在内存中占有不同的储存单元,实参无法得到形参的值。

(四) 对被调用函数的声明和函数原型。

(1)在函数声明中的形参名可以省写,而只写形参的类型类型。

float add(float x,float y) 可以写成 float add(float,float);

(2)1.函数类型 函数名(参数类型 1 参数名1,参数类型2 参数名2,... ,参数类型n,参数名 n);

2.函数类型 函数名 (参数类型1,参数类型2,参数类型3,...,参数类型n)

(五)函数的递归调用

在调用一个函数的过程中又出现直接或间接地调用该函数本身,称为函数的递归调用。(c语言的特点之一)

例如:

int f(int x)

{

int y,z;

z=f(y);

return (2*z);

}

汉诺塔问题。

#include

int main()

{

void hanoi(int n,char one,char two,char three);

int m;

printf("input the number of diskes:");

scanf("%d",&m);

printf("The step to move %d diskes:\n",m);

hanoi(m,'A','B','C');

}

void hanoi(int n,char one,char two,char three)

{

void move(char x,char y);

if(n==1)

move(one,three);

else

{

hanoi(n-1,one,three,two);

move(one,three);

hanoi(n-1,two,one,three);

}

}

void move(char x,char y)

{

printf("%c->%c\n",x,y);

}

(六)数组作为函数参数

1.数组元素可以用做函数实参,不能用做形参。在用数组元素做函数实参时,把实参的值传给形参,是值传递方式。

数据传递的方向是从实参传到形参,单向传递。

2.数组名作函数参数

用数组元素做实参时,向形参变量传递的是数组元素的值,而用数组名作函数实参时,向形参(数组名或指针变量)传递的是数组首元素的地址

3.多维数组名作函数参数

int array[3][10];

或 int array[][10];

c语言自定义函数实参和形参 C语言 函数的定义 调用函数 实参和形参 函数的声明和函数原型 递归...

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。