初识C语言之函数(上)

一.函数的概念

1.函数的定义:

在C语言中函数就是一个完成某项特定任务的一小段代码。

2.函数的作用:

一个大的计算机任务可以分为若干个较小的函数来完成。(同一个函数如果能完成某项特定任务的话,这个函数就可以重复使用,从而提高开发软件的效率)

3.函数的分类:

①库函数:由C语言库直接提供

②自定义函数:由自己创造的函数

二.库函数

标准库和头文件:

库函数的相关信息主要详见于下方链接

http://zh.cppreference.com/w/c/header

三.自定义函数

1.语法形式

①函数的返回类型    函数名   (形式参数)

{

函数体

}

②具体解释:

  • 函数的返回类型:void表示什么都不返回。
  • 函数体:真正完成运算的过程。
  • 函数名:自己起的有意义的名字。
  • 形式参数:无参数为void ,有参数需要交代类型名字和参数的个数。

③例子:

#include

int add(int x,int y)//定义函数并且将形式参数x,y带入函数体参与运算

{

int z=0;//定义变量z并且初始化为0

z=x+y;//将传来的a与b所对应的形式参数x和y相加的值赋值给z

return z;//将计算之后的z值返回给主函数

}

int main ( )

{

int a=0;

int b=0;

scanf("%d  %d",&a,&b);//键盘输入a 与b的值,方便之后进行相加运算

int c=add(a,b);//调用add函数,并且将a与b的值传给函数,最后将函数的返回值赋值给c

printf("%d",c);//打印c也就是(a+b)的值

return 0;

}

  • 上述例子的add函数也可以写成:

int add(int x,int y)

{

return x+y;//将传来的a b 所对应的形式参数x  y相加并且,将相加之后的值直接返回给主函数。

}

  • 注意:函数无参数不等于函数无返回值。

四.形式参数和实际参数

1.实际参数:在调用函数时,真实传递给函数的参数(例如上述例子的a和b)

形式参数:在函数定义中,函数名后面的参数(例如上述例子的x 和y)

2.两者关系

形式参数是实际参数的临时拷贝

五.return 语句

1.return之后可以是数值也可以是表达式。如果是表达式则先执行表达式,再返回表达式的结果。例如return x+y;先计算x+y的值然后将其值返回。

2.return后可以什么都没有,这种写法仅适合函数返回类型是void情况。

例子:

void test(  )

{

printf("好好学习,天天向上");

if(1)//如果1为真命题,则直接return ,提前结束函数。(前提必须为返回类型是void的情况)

{

return ;

}

printf("haha");

}

int main()

{

test();

return 0;

}

上述代码打印的结果为:好好学习,天天向上(不会打印:haha)

3.return返回值和函数类型不一致,系统会自动把返回的值隐式转换为函数的返回类型。

例子:

int test (  )//函数的返回类型为int [整型]

{

return 3.14;//函数的返回值类型为浮点数类型

}

int main()

{

int r=test( );

pribtf("%d",r);

return 0;

}

上述代码的打印结果为3。

根据上述解释:当函数返回类型和函数返回值的类型不同时,则函数的返回值类型会转换为函数返回类型。

4.return语句执行后,函数就彻底返回,后面的代码不再执行。

5.若函数存在 if等分支语句,则应该在保证每种情况下都有return 返回,否则会出现编译错误。

错误示范:

int test()

{

int a=0;

scanf("%d",&a);//键盘录入的值赋给a

if(a)//如果a为真命题则执行下列语句

return 1;若a为真命题则返回1

}

int main ( )

{

int r=test();

return 0;

}

上述代码没有考虑a为假命题的情况,则会报出此类错误:不是所有的控制路径都有返回值。

6.如果不写函数的返回类型,则默认函数的返回类型为整型。

如果函数必须有返回值,但是没有写返回值,那么函数具体返回什么就不得而知了。

六.数组和函数的应用

1.数组传参数时,实际参数应写成数组名,形式参数应写成数组的形式。

例子:

设置函数时:void test (int arr[10],int sz)

调用函数时:test(arr,sz)

2.实际参数与形式参数的名字可以写成一样的,也可以不一样。

3.函数在设计的时候应该功能单一(函数可以重复使用,提高开发软件的效率)

4.数组在传参时,形式参数的数组和实际参数的数组是同一个(对形式参数的修改也同时会修改实际参数)

 

 

 

 

 

你可能感兴趣的:(C语言学习,c语言,学习,开发语言)