一、函数的使用

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说明的)

转载于:https://www.cnblogs.com/trj14/p/4282733.html

C语言学习笔记-7.函数相关推荐

  1. C语言学习笔记---浮点函数modf()和fmod()

      modf函数可以提取出浮点数的整数部分和小数部分.fmod函数可以返回两个浮点数相除的余数.它们的函数原型如下: double __cdecl modf(double _X,double *_Y) ...

  2. C语言学习笔记---abs()函数和div()函数

      C语言库中提供了许多函数,这样需要计算的时候,可以直接借助库函数,而不用自己重新编写函数.今天就来看一下C语言标准库函数里面的整型函数. int __cdecl abs(int _X);long ...

  3. C语言学习笔记---断言函数assert()

      在C语言库函数中提供了一个辅助调试程序的小型库,它是由assert()宏组成,接收一个整形表达式作为参数.如果表达式的值为假(非零),则assert()宏就在标准错误流(stderr)中写入一条错 ...

  4. C语言学习笔记---指向函数的指针

      在内存中函数的存放也是一段连续的内存,函数名就是指向改内存中的首地址,所以也可以将这个函数的首地址赋给一个指针变量,这样通过指针变量就可以访问改函数.   那么为什么要通过指针来访问函数呢?下面通 ...

  5. C语言学习笔记---打印函数printf()和sprintf()函数

    printf()函数   在C语言中使用最多的打印函数就是printf(),它可以将各种类型的数据转换为字符串输出. int main(int argc, char *argv[]) {char na ...

  6. C语言学习笔记——调用函数时提示警告

    [代码] int main() { abc(); abc3(); return 0; } void abc() { int a=65135; double i=8256.67; a=(int)i+a; ...

  7. C语言学习笔记---时间函数strftime()

    strftime函数主要用于时间格式化,它的函数原型如下: size_t __cdecl strftime(char * __restrict__ _Buf,size_t _SizeInBytes,c ...

  8. C语言学习笔记---时间函数ctime()和gmtime()

      函数原型如下: __CRT_INLINE char *__cdecl ctime(const time_t *_Time);__CRT_INLINE struct tm *__cdecl gmti ...

  9. C语言学习笔记---时间函数asctime()和localtime()

      这两个时间函数原型如下: char *__cdecl asctime(const struct tm *_Tm);__CRT_INLINE struct tm *__cdecl localtime ...

最新文章

  1. 客户需求分析8个维度_CRM准确数据分析,把控客户需求
  2. iBatis学习网站推荐
  3. MySQL 为什么我的MySQL会“抖一下“?
  4. 派生类中构造函数与虚构函数的研究
  5. java swing 禁用鼠标事件_Java学习笔记:swing中树控件,设置树节点的图标,按钮美化,鼠标事件,禁止鼠标双击...
  6. java list 取几个字段组装成map_24道Java各类常见问题整理
  7. leetcode360. 有序转化数组
  8. VMware Workstation 8下Ubuntu 13.04中安装VMware Tools出错
  9. php查找存储引擎,php-如何找到MySQL临时表存储引擎
  10. 学习笔记之linux网络属性配置及其命令用法
  11. 数据结构c语言版编程软件,数据结构严蔚敏4版PDF下载_数据结构C语言版严蔚敏下载 完整版_当载软件站...
  12. 偷窥JCache API(JSR 107)
  13. 软件质量因素 6个_影响软件质量管理的主要因素
  14. 搭建一个属于自己的星球-快速建站实录(1/3):域名
  15. Tiles的使用,遗漏和总结
  16. 使用BAT脚本实现一键配置Mysql服务器和开启远程服务
  17. Python脚本-自动连接校园网
  18. word2vec源码分析
  19. 【JS逆向】知乎请求头 _x-zes-96 webpack还原
  20. smart200plc

热门文章

  1. python3比较文本差异_脑科学方向 | Python3的安装与环境搭建
  2. 平衡二叉树平衡因子怎么计算_数据结构PHP 平衡二叉树(AVL)的平衡原理
  3. sklearn adaboost_集成学习-从零推导和实现adaboost与3D可视化
  4. 信息安全工程师笔记-数字证书
  5. Java笔记-多线程相关
  6. zynq linux内核驱动编写,【原创】Linux下驱动Zynq GPIO (Switch、button、led)
  7. 初一上册计算机教案,人教版七年级上册信息技术教学计划
  8. [Err] 1205 - Lock wait timeout exceeded; try restarting transaction Mysql 报错
  9. php接收post参数乱码,学习猿地-php接收post参数乱码怎么办
  10. ciaodvd数据集的简单介绍_COCO数据集的简单介绍