Hello!彦祖们,俺又回来了!!!,继续给大家分享 《C语言从不挂科到高绩点》课程!! 本节将为大家讲解C语言中的函数:
本套课程将会从0基础讲解C语言核心技术,适合人群:
- 大学中开设了C语言课程的同学
- 想要专升本或者考研的同学
- 想要考计算机等级证书的同学
- 想要从事C/C++/嵌入式开发的同学
================点个关注吧================
=========================================
7.7 变量的作用域
全局变量:定义在所有函数之外,全局变量在程序退出之前都有效。
局部变量:定义在函数内部(形式参数也属于局部变量),局部变量在函数退出的时候会被释放。
7.7.1 局部变量
局部变量的概念:凡是被一对花括号{}包裹的变量都称为局部变量。for 循环中定义的 i 是局部变量,在 main 函数中定义的变量也属于局部变量。
局部变量的特点:
- 某个函数内部的局部变量,存储在该函数的栈空间。
- 函数定义局部变量仅在函数中使用,在函数外部无法使用
- 在函数退出的时候会被回收资源,由于函数内存取消,存在其空间里面的局部变量也会被释放。局部变量也称为临时变量。
- 函数的形式参数也属于局部变量。
- return 之后不可再访问函数的局部变量,因此返回局部变量的地址是错误的
栈内存的特点:
- 每个函数被调用的时候,系统会自动分配一块内存给函数。用于存储局部变量。
- 每个函数退出的时候,系统会自动回收函数的栈内存。
- 系统为函数分配内存,遵循从上往下分配的原则。
7.7.2 全局变量
- 程序中全局变量存在于所有函数之外,包括 main 函数。
- 全局变量的作用域是整个文件,随着程序结束而释放。
- 全局变量和局部变量可以同名,当同名时,优先使用局部变量。
7.7.3 演示案例
#include <stdio.h>
// 全局变量:定义在所有函数之外的变量
int number = 100;// 全局变量
// 全局变量的作用域:整个文件,在程序结束之前,所有的函数中都可以使用
void swaps(int a,int b){ // a,b 形式参数,属于局部变量,只能在swaps函数中使用
int temp =a; /