浅谈C语言——正式步入C语言学习(5)

程序结构

此章主要为之前的一些总结,然后稍微细讲一些。因为总结一下,为之后解决 问题做一下铺垫。

此次阅读较为繁琐,但是较为简单理解,大约需要8分钟。

本文章参考《C语言程序设计现代方法(第二版)》以及自己总结,不正确或者不适当的地方欢迎批评指正,主要以学习总结以及应用为主,在深入学习的同时也会及时更正不适合的地方。

一个程序包含多个函数时产生的几个问题。

一、局部变量

函数体内的声明的变量成为该函数的局部变量。

(1)局部变量的性质:

  • 自动存储期限:即存储长度,局部变量在函数调用时,它的长度不是一成不变的,有时候他的长度发生变化,无法保证仍拥有原先的值。
  • 块作用域:局部变量只能作用域所属的块区域内,不能跨区域作用,所以其他函数可以把同名的变量名应用于别的用途。

例如:
在这里插入图片描述

(2)静态局部变量
在布局变量声明中放置单词static可以使变量具备静态存储器期限不再是自动存储期限,静态存储期限具有永久的存储单元,整个程序执行器件都会保留变量的值。
例如:

void f(void)
{
static int I;}

二、 外部变量(全局变量)

性质:

  • 静态存储期限
  • 文件作用域:与块作用域相反,跟随在外部变量声明之后的所有函数都可以访问(修改)它。

外部变量的利与弊:

  • (优)多个函数必须共享一个变量时或者少数几个函数共享大量变量时,外部变量是很有用的。
    劣:
  • 在程序维护期间,如果改变外部变量,那么将需要检查同一文件夹中的每个函数,以确认该变化如何对函数产生影响。
  • 如果外部变量被赋予错误的值,可能很难确定出错的函数。
  • 很难在其他程序中复用依赖于外部变量的函数。

三、 作用域

当程序块内的声明命名一个标识符时,如果此标识符已经是可见的,新的声明临时“隐藏”了旧的声明,标识符获得了新的含义。在程序的末尾,标识符重新获得旧的含义。

来看部分程序:

int i ;

void f (int i)
{
	i = 1;
}

void g (void)
{
	int i = 2;

if(i > 0)
{
	int i;

	i = 3;
}
	i = 4;
}

void h (void)
{
	i = 5;
}

在这里插入图片描述
解释:
声明1:i是静态存储期限和文件作用域的变量。
声明2:i是具有块作用域的形式参数。
声明3:i是具有块作用域的自动变量。
声明4:同声明3。

四、 构建C程序

基本程序j基本元素可包含:

  • 预处理指令;
  • 类型定义;
  • 外部声明变量;
  • 函数原型;
  • 函数定义;

下面是一种可能的编排顺序:

  • #include指令;
  • #define指令;
  • 类型定义;
  • 外部变量的声明;
  • 除main函数之外的函数的原型;
  • main函数的定义;
  • 其他函数的定义;

最后的建议

在每个函数定义前放盒型注释可以给出函数名、描述 函数的目的、讨论每个形式参数的含义、描述返回值(如果有的话)并罗列所有的副作用。

此次文章较为杂乱,大家从基础开始学习,本人也很注重基础,还是需要日积月累啊,我们一起加油!!!
小编一边深入学习,一边继续更新新的文章,然后发现问题会第一时间更正,有需要修正的地方请告知小编,第一时间做出修改。
祝大家生活愉快!!!

猜你喜欢

转载自blog.csdn.net/weixin_43540527/article/details/107992764