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说明的)
转载于:https://www.cnblogs.com/trj14/p/4282733.html
C语言学习笔记-7.函数相关推荐
- C语言学习笔记---浮点函数modf()和fmod()
modf函数可以提取出浮点数的整数部分和小数部分.fmod函数可以返回两个浮点数相除的余数.它们的函数原型如下: double __cdecl modf(double _X,double *_Y) ...
- C语言学习笔记---abs()函数和div()函数
C语言库中提供了许多函数,这样需要计算的时候,可以直接借助库函数,而不用自己重新编写函数.今天就来看一下C语言标准库函数里面的整型函数. int __cdecl abs(int _X);long ...
- C语言学习笔记---断言函数assert()
在C语言库函数中提供了一个辅助调试程序的小型库,它是由assert()宏组成,接收一个整形表达式作为参数.如果表达式的值为假(非零),则assert()宏就在标准错误流(stderr)中写入一条错 ...
- C语言学习笔记---指向函数的指针
在内存中函数的存放也是一段连续的内存,函数名就是指向改内存中的首地址,所以也可以将这个函数的首地址赋给一个指针变量,这样通过指针变量就可以访问改函数. 那么为什么要通过指针来访问函数呢?下面通 ...
- C语言学习笔记---打印函数printf()和sprintf()函数
printf()函数 在C语言中使用最多的打印函数就是printf(),它可以将各种类型的数据转换为字符串输出. int main(int argc, char *argv[]) {char na ...
- C语言学习笔记——调用函数时提示警告
[代码] int main() { abc(); abc3(); return 0; } void abc() { int a=65135; double i=8256.67; a=(int)i+a; ...
- C语言学习笔记---时间函数strftime()
strftime函数主要用于时间格式化,它的函数原型如下: size_t __cdecl strftime(char * __restrict__ _Buf,size_t _SizeInBytes,c ...
- C语言学习笔记---时间函数ctime()和gmtime()
函数原型如下: __CRT_INLINE char *__cdecl ctime(const time_t *_Time);__CRT_INLINE struct tm *__cdecl gmti ...
- C语言学习笔记---时间函数asctime()和localtime()
这两个时间函数原型如下: char *__cdecl asctime(const struct tm *_Tm);__CRT_INLINE struct tm *__cdecl localtime ...
最新文章
- 客户需求分析8个维度_CRM准确数据分析,把控客户需求
- iBatis学习网站推荐
- MySQL 为什么我的MySQL会“抖一下“?
- 派生类中构造函数与虚构函数的研究
- java swing 禁用鼠标事件_Java学习笔记:swing中树控件,设置树节点的图标,按钮美化,鼠标事件,禁止鼠标双击...
- java list 取几个字段组装成map_24道Java各类常见问题整理
- leetcode360. 有序转化数组
- VMware Workstation 8下Ubuntu 13.04中安装VMware Tools出错
- php查找存储引擎,php-如何找到MySQL临时表存储引擎
- 学习笔记之linux网络属性配置及其命令用法
- 数据结构c语言版编程软件,数据结构严蔚敏4版PDF下载_数据结构C语言版严蔚敏下载 完整版_当载软件站...
- 偷窥JCache API(JSR 107)
- 软件质量因素 6个_影响软件质量管理的主要因素
- 搭建一个属于自己的星球-快速建站实录(1/3):域名
- Tiles的使用,遗漏和总结
- 使用BAT脚本实现一键配置Mysql服务器和开启远程服务
- Python脚本-自动连接校园网
- word2vec源码分析
- 【JS逆向】知乎请求头 _x-zes-96 webpack还原
- smart200plc
热门文章
- python3比较文本差异_脑科学方向 | Python3的安装与环境搭建
- 平衡二叉树平衡因子怎么计算_数据结构PHP 平衡二叉树(AVL)的平衡原理
- sklearn adaboost_集成学习-从零推导和实现adaboost与3D可视化
- 信息安全工程师笔记-数字证书
- Java笔记-多线程相关
- zynq linux内核驱动编写,【原创】Linux下驱动Zynq GPIO (Switch、button、led)
- 初一上册计算机教案,人教版七年级上册信息技术教学计划
- [Err] 1205 - Lock wait timeout exceeded; try restarting transaction Mysql 报错
- php接收post参数乱码,学习猿地-php接收post参数乱码怎么办
- ciaodvd数据集的简单介绍_COCO数据集的简单介绍