函数c语言

函数的优点:

使程序变得更简短而清晰 
有利于程序维护
可以提高程序开发的效率 
提高了代码的重用性 

内置函数:
由C语言系统提供;
用户无须定义,也不必在程序中作类型说明;
只需在程序前包含有该函数定义的头文件;

自定义函数:
用户在程序中根据需要而编写的函数;

C 语言中的 return 语句用于向调用函数返回值,语法如下:
             return (<表达式>); 
C语言中的函数至多可以返回一个值,不能返回多个值;
返回值的数据类型必须与函数原型中返回值的数据类型匹配;
当遇到 return 语句时,函数执行将终止。程序控制流将立即返回调用函数;

函数的传值调用
函数的传值调用中,分为传递实参数据值的传值调用和传递实参变量地址的传址调用.
(1)、传值调用方式
     A、这种调用方式是将实参的数据传递给形参,即将实参值拷贝一个副本存放在被调用函数的栈区中.
     B、在被调函数中,改变了形参的值而不影响调用函数实参值.

(2)、传址调用方式(指针或数组名:一维与二维数组名)
     A、这种调用方式是将实参变量的地址传递给形参,这时形参应是指针.即让形参指针指向实参地址.
     B、于是,这就提供了一种可以改变实参变量的值的方法:在被调函数中改变形参所指向的变量值.

数组作为函数参数
在用数组作实参时,以传址方式调用函数,也就是说把实参数组的首地址赋给形参
实际上形参数组和实参数组为同一数组,共同拥有一段内存空间

函数指针
1.一个函数在编译时,有一个入口地址,即该函数的指针
2.函数指针的定义:
          数据类型     (*   指针变量名) (函数参数表)
        如:  int   (*p) (int, int)
3.函数指针的值就是指针所指向的函数的返回值
4.函数指针赋值:   指针变量名 =  函数名
      如:  p=max;
5.函数指针引用:   (*   指针变量名)  (函数参数表)
    如:  (*p)(a, b)    或 p(a,b)

  注:  不能省略*p两端的括号

函数指针说明:
   (1)函数的调用可以通过函数名,也可以通过函数指针调用
   (2)  int   (*p) ( int , int )仅仅定义了一个指针,它可以指向不同的函数,只要该函数返回一个整型数据,且有两个整型参数
   (3)在给函数指针赋值时,只需给出函数名,而不必给出参数
   (4)用函数指针调用函数时,只需(*p)(a, b),即用*p代替函数名
   (5) 对于函数指针,  p+n、p++、p-- 无意义


用指向函数的指针作函数参数
目的:能够调用由参数传过来的函数
功能:  调用同一函数,根据参数的不同,实现不同的功能
如:  void sub( int  (*x1)(int),  int  (*x2)(int, int)) 

返回指针值的函数——指针函数
指针函数:返回指针值的函数,即函数的返回值是一个指针
定义形式:类型名    *函数名(参数列表)
     eg:  int    *a(int  x,  int  y)

指向指针的指针
指针的指针:指针值还是指针的变量类型
定义格式:int   **p;      
                **p是一个整型变量值
                 *p是一个指向整型变量指针
                  p是一个指向整型变量的指针的指针 

命令行参数
main函数也是可以有参数的。(UNIX和MS-DOS)
格式:void   main(int  argc,   char   *argv[ ] )
main函数由操作系统调用,在命令中, 输入main所在的文件名(经过编译链接得到的可执行文件)  
参数argc是指命令行参数的个数(包括可执行文件名)
参数*argv[ ]是一个指针数组,数组元素分别是输入参数的首地址

局部变量:  定义在函数内部的变量
生存期:  变量定义→所在函数结束
作用域:  只能在定义函数内部被访问

静态局部变量:
生存期:  程序开始→程序结束
作用域:  只能在定义函数内部被访问
应用场合: 统计数据

全局变量:
生存期:  程序开始→程序结束
作用域:  所有.c文件都可以访问
项目中谨慎使用

静态全局变量
生存期: 程序开始---->程序结束
作用域:  只能被本.c文件访问

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值