C语言 全局变量和局部变量的区别

局部变量和全局变量的区别
背景:上午看书阅及这两对概念,有很多相似之处,故记之。

一. 局部变量&全局变量

1 局部变量:“在函数内定义的变量”,

即在一个函数内部定义的变量,只在本函数范围内有效。

2 全局变量:“在函数外定义的变量”,

即从定义变量的位置到本源文件结束都有效。

目的:增加函数间数据联系的渠道。由于同一文件中的所有函数都能引用全局变量的值,因此如果在一个函数中改变了全局变量的值,

就能影响到其他函数中全局变量的值,相当于各个函数之间有直接的传递渠道。

为了便于区别两者,C程序设计人员有一个习惯,将全局变量名的第一个字母用大写表示。如:float Max=0,Min=0; //定义全局变量Max,Min

二. 内部函数&外部函数

1.内部函数:只被本文件中其他函数所调用。

定义内部函数时,在函数名、函数类型前加 static 。 static 类型名 函数名(形参表); 例如,static int fun(int a,int b);

2.外部函数:可供其他文件调用。

定义外部函数时,在函数首部左端加 extern。extern int fun(int a,int b);

若在定义函数时省略extern,则默认为外部函数。

拓展一个问题,为什么C语言要求在定义所有的变量时都要指定变量的类型?

所谓类型,就是对数据分配存储单元的安排,包括存储单元的长度(占多少字节)以及数据的存储形式。不同的类型分配不同的长度和存储形式。

在计算机中,数据是存放在存储单元中的,它是具体存在的(在数学中,数和数的运算都是抽象的)。而且,存储单元是由有限的字节构成的,

每一个存储单元中存放数据的范围是有限的,不可能存放“无穷大”的数,也不能存放循环小数。

最后附上c语言包含的数据类型

在这里插入图片描述

END 谢谢!

分类: c/c++
转载自:https://www.cnblogs.com/gaigaichen/p/6860961.html

猜你喜欢

转载自blog.csdn.net/charuiyu/article/details/86538977