C语言基础知识总结大全(三)

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

12.变量存储类别 !

12.1.生存周期划分存储方式

C语言根据变量的生存周期来划分可以分为静态存储方式和动态存储方式。

静态存储方式是指在程序运行期间分配固定的存储空间的方式。静态存储区中存放了在整个程序执行过程中都存在的变量如全局变量。

动态存储方式是指在程序运行期间根据需要进行动态的分配存储空间的方式。动态存储区中存放的变量是根据程序运行的需要而建立和释放的通常包括函数形式参数自动变量函数调用时的现场保护和返回地址等。

12.2.存储类型划分

C语言中存储类别又分为四类自动auto、静态static、寄存器的register和外部的extern ;

  1. 用关键字auto定义的变量为自动变量auto可以省略auto不写则隐含定为“自动存储类别”属于动态存储方式。
  2. 用static修饰的为静态变量如果定义在函数内部的称之为静态局部变量如果定义在函数外部称之为静态外部变量。

注意静态局部变量属于静态存储类别在静态存储区内分配存储单元在程序整个运行期间都不释放静态局部变量在编译时赋初值即只赋初值一次如果在定义局部变量时不赋初值的话则对静态局部变量来说编译时自动赋初值0对数值型变量或空字符对字符变量

  1. 为了提高效率C语言允许将局部变量的值放在CPU中的寄存器中这种变量叫“寄存器变量”用关键字register作声明。

注意只有局部自动变量和形式参数可以作为寄存器变量一个计算机系统中的寄存器数目有限不能定义任意多个寄存器变量局部静态变量不能定义为寄存器变量。

  1. 用extern声明的的变量是外部变量外部变量的意义是某函数可以调用在该函数之后定义的变量。
#includ <stdio.h>
//来源公众号C语言与CPP编程
int main()
{
	//定义外部局部变量
	extern int x;
	return 0;
}
int x=100;

13.内部函数外部函数 !

在C语言中不能被其他源文件调用的函数称为内部函数 内部函数由static关键字来定义因此又被称为静态函数形式为

static [数据类型] 函数名[参数]

这里的static是对函数的作用范围的一个限定限定该函数只能在其所处的源文件中使用因此在不同文件中出现相同的函数名称的内部函数是没有问题的。

在C语言中能被其他源文件调用的函数称为外部函数 外部函数由extern关键字来定义形式为

extern [数据类型] 函数名([参数])

C语言规定在没有指定函数的作用范围时系统会默认认为是外部函数因此当需要定义外部函数时extern也可以省略。 extern可以省略; 14.数组 数组:一块连续的大小固定并且里面的数据类型一致的内存空间 数组的声明:数据类型 数组名称[长度n]

  1. 数据类型 数组名称[长度n] = {元素1,元素2,元素3,......};
  2. 数据类型 数组名称[] = {元素1,元素2,元素3,......};
  3. 数类类型 数组名称[长度n]; 数组名称[0] = 元素1;数组名称[1] = 元素2;...... 注意 1、数组的下标均以0开始 2、数组在初始化的时候数组内元素的个数不能大于声明的数组长度 3、如果采用第一种初始化方式元素个数小于数组的长度时多余的数组元素初始化为0 4、在声明数组后没有进行初始化的时候静态static和外部extern类型的数组元素初始化元素为0自动auto类型的数组的元素初始化值不确定。

 

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6