函数概述

本文深入探讨了C语言函数的定义、分类、调用及注意事项,并提供了实用的实例解析,帮助开发者理解如何合理设计函数解决实际问题。
 

C语言的函数与java、C++(面向对象)的函数不太一样
1、为什么需要函数
 模块化;
 避免了重复性的操作;
 
   C语言的基本单位是函数
2、什么叫做函数
 逻辑上:能够完成特定功能的独立的代码块
 物理上:
  能够接受数据【也可以不接受】
  能够对数据进行处理
  能够将处理后的结果返回【也可以不返回】
 总结:函数是个工具,它是为了解决大量类似问题而设计的
  函数可以当做一个黑匣子

3、如何定义函数
 函数的返回值 函数的名字(函数的形参列表)
 {
  函数的执行体
         }
 (1)函数定义的本质是详细描述函数之所以能够实现某个特定功能的具体实现方法;
 (2)return表达式的含义
  1>终止被调函数,向主调函数返回表达式的值
         2>break是终止循环,而return是终止函数
  3>如果表达式为空,则只终止函数,不向主调函数返回任何值
  例子:
   void f()
     {
    return;//return只用来终止函数,不向主调函数返回任何值
                           }
   int f()
      {
    return 10;//第一终止函数,第二 向主调函数返回表达式的值
       }

   (3)函数返回值的类型也称为函数的类型,因为如果函数名前的返回值类型和函数执行体中

的return表达式中表达式类型不同的话,则最终函数返回值的类型以函数名前的返回值类型为准。

#include<stdio.h>

int f()
{
 return 10.9; //该函数返回的值以函数名前的类型为准。
}
int main(void)
{
 int i=99;
 
 i=f();
 printf("%d\n",i);
 return 0;

4、函数的分类
 有参函数        无参函数
 有返回值函数    无返回值函数
 库函数          用户自定函数
       【值传递函数 地址传递函数】
 普通函数 主函数(main函数)
       
主函数是程序的入口,也是程序的出口,普通函数不能调用主函数;普通函数可以互相调用

5、注意的问题
    1>编写函数的时候要单一,不能太复杂,方便多处利用
    2>函数调用和函数定义的顺序 
 如果函数调用写在了函数定义的前面,则必须加函数前置声明
    函数前置声明:
 (1)告诉编译器即将可能出现的若干个字母代表的是一个函数
 (2)告诉编译器即将可能出现的若干个字母所代表的函数的形参和返回值的具体情况
 (3)函数声明是一个语句,末尾必须加分号
 (4)对库函数的声明是通过#include<库函数所在的文件的名字.h>来实现的
    形参和实参
 个数相同 位置一一对应 数据类型必须相互兼容
【重点难点】
 如何在软件开发中合理的设计函数来解决实际问题?
 一个函数的功能尽量独立,单一
 多学习多模仿牛人的代码

6、常用的系统函数
 double sqrt(double x)
 求X的平方根
 int abs(int x)
 求X的绝对值
 double fabs(double x)
 求x的绝对值
 
7、变量的作用域和存储方式
按作用域分为:
 全局变量
  在所有函数外部定义的变量叫全局变量
  全局变量使用范围:从定义位置开始到整个程序结束


 局部变量
  在一个函数内部定义的变量或者函数的形参 都统称为局部变量
  void f(int i)
   {
    inr j = 20;
   }
  i和j都属于局部变量
 局部变量的使用范围:只能在本函数内使用
注意的问题:
 全局变量和局部变量命名冲突的问题
 在一个函数内部如果定义的局部变量的名字和全局变量名一样时,局部变量会屏蔽掉全局变量
按存储方式:
 静态变量

 自动变量

 寄存器变量

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值