zoukankan      html  css  js  c++  java
  • C语言学习笔记-7.函数

    一、函数的使用

    1.每个函数在使用之前必须先定义

        例:void function();       //有分号

              int main() {…}

              void add() {…}       //无分号

    2.文件包含处理:

       #include <文件名>       在库函数头文件所在目录中查找(标准方式)

       #include “文件名”      先在当前工作目录中查找,若没有则使用标准方式

    3.函数的调用

        形参:定义一个函数时指定的参数

        实参:调用一个函数时指定的参数

                 注:C语言规定只能由形参传给实参

    二、函数变量的作用范围

    1.局部变量的作用范围是它所在的整个函数(包括main函数)

       形参可以视为局部变量

    2.全局变量的作用范围:从定义这个变量的位置开始,至程序结束

       如果在同一源文件中,全局变量与局部变量同名,则在局部变量的作用域内,全局变量将被屏蔽

    3.函数的调用:

         控制流:语句执行的顺序

         数据流:在函数调用发生及结束时,数据在函数之间流转的过程,如参数的传递、返回

    三、函数调用的实现过程

    1.进程的内存分布

    操作系统  
    代码  
    数据段 编译器用来存储字符串常量的地方
    主要用作动态申请的内存空间
    栈  S1 在调用一个函数时,系统在栈空间中自动分配一块区
         S2 域给这个函数,用来存放形参和局部变量等信息
         ……  
    全局变量  

    2.全局变量会被初始化为0

    四、数组与函数参数

    1.函数定义:double averagee(int a[], int n) {…}

       函数调用:average(score, n);

         注意:数据类型必须一致

                  由于形参数组名实质上是指针,所以定义时可以不指定大小

                  由于数组名不带有长度信息,因此需增加一个参数,用来传递数组的长度

    五、变量的存储属性

    1.存储类型:

    auto(自动型) 默认局部变量,属于默认类型
    register(寄存器型) 存储在CPU寄存器中,优点:效率高,缺点:个数少,只能为int型
    static(静态型) 性质:全局寿命,局部可见性,可继承性
    extern(外部型) 不是变量定义,只是扩展外部变量作用域(范围:变量定义位置到源文件结束,及其他有extern说明的)
  • 相关阅读:
    Xaml引用图片路径的方式
    并发概念模型:JMM(JAVA内存模型)
    并发组件之一:ThreadLocal线程本地变量
    并发锁之二:ReentrantReadWriteLock读写锁
    并发锁之一:ReentrantLock重入锁
    AQS同步队列器之二:等待通知机制
    AQS同步队列器之一:使用和原理
    css常用操作
    自动生成mybatis代码
    jdk动态代理源码分析(二)---依赖接口的实现
  • 原文地址:https://www.cnblogs.com/trj14/p/4282733.html
Copyright © 2011-2022 走看看