做快消品看那些网站好,邹城网站建设公司,电商运营工资一般多少钱一个月,网站开发合同免费模板存储的类别是变量的属性之一#xff0c;C语言定义了4种变量的存储类别#xff0c;分别是auto变量、static变量、register变量和extern变量。以下重点介绍这几种类型。
一、auto变量 auto变量是C默认的存储类型。函数内未加存储类型说明的变量均被称为自动变量#xff0c;即… 存储的类别是变量的属性之一C语言定义了4种变量的存储类别分别是auto变量、static变量、register变量和extern变量。以下重点介绍这几种类型。
一、auto变量 auto变量是C默认的存储类型。函数内未加存储类型说明的变量均被称为自动变量即自动变量可省略关键字auto。
{int i, j, k;
}
等价于
{auto int i, j, k;
} auto变量具有以下特点:
自动变量的作用域仅限于定义该变量的个体内自动变量属于动态存储方式变量分配的内存在栈中当函数调用结束后自动变量的值会被释放自动变量的作用域和生命期都局限于定义它的个体函数或复合语句内不同个体中允许使用同名的变量不会产生混淆。 输出不同生命期的变量值代码如图1.1所示。 图1.1 程序运行结果如1.2所示 图1.2 二、static变量 在声明变量前加关键字static可以将变量声明成静态变量。
//声明变量为静态变量
static int a, b;
static float x, y;
static int a[3]{0, 1, 2};
使用static变量实现累加代码如图2.1 图 2.1 程序运行结果如图2.2所示。 图 2.2 三、register变量 在C中register关键字用于声明一个寄存器变量。使用register声明的变量编译器会尽量将其存储在寄存器中以提高访问速度。由于寄存器变量存储在寄存器中它们的访问速度会比存储在内存中的变量更快。但需要注意的是register关键字只是对编译器提供的一个建议编译器不一定会将变量存储在寄存器中。编译器可能会根据实际情况决定是否将变量存储在寄存器中比如当寄存器的数量有限时。此外有些编译器可能已经不再支持register关键字因为现代的编译器已经足够智能能够根据代码的上下文自动进行优化包括变量的存储和访问。 综上所述register关键字在现代的C中已经不常用或不再具有实际意义而且有些编译器可能已经不再支持。因此在实际编程中我们通常不需要使用register关键字来声明寄存器变量。 四、extern变量 在C中extern关键字用于声明一个变量表明该变量是在其他地方定义的。当我们在一个C文件中使用extern声明一个变量时实际上是告诉编译器在其他文件中定义了这个变量需要在链接时找到它。 在示例1.cpp源文件中定义全局变量a、b、c代码如下。 在示例2.cpp源文件中要使用示例1.cpp中的全局变量a、b、c代码如下。 五、总结 以上就是今天要讲的内容本文简单介绍了C基础中的变量类型如auto变量、static变量、register变量和extern变量以及应用。 六、结言 感谢大家的阅读与参与您的支持是我前进的动力让我们一起进步加油谢谢您的支持