C++变量的存储类别 | 判断是否是闰年

C++静态存储方式

在上一节小林讲过,作用域从空间的角度来分析的,分为全局变量和局部变量,在这一节中,小林带着你学习变量的另一种属性,变量在内存中的存在期间,也就是存储期。 

存储期可以分为静态存储期和动态存储期,静态存储方式是指在程序运行期间,系统对变量分配固定的存储空间;动态存储方式则是在程序运行期间,系统对变量动态地分配存储空间。 

内存中的供用户使用的存储空间可以分为三部分:

  • 程序区
  • 静态存储区
  • 动态存储区

全局变量全部存放在静态存储区中,在程序开始执行时给全局变量分配存储单元,程序执行完毕就释放这些空间,在程序执行过程中它们占据固定的存储单元,而不是动态地进行分配和释放。

C++动态存储方式

动态存储区中存放以下数据:

函数形式参数,在调用函数时给形参分配存储空间。

函数中的自动变量。

函数调用时的现场保护和返回地址。

动态存储在函数调用开始时分配动态存储空间,函数结束时释放这些空间。在程序执行过程中,这种分配和释放是动态的。

在C++中还有存储类别的属性,具体包含4种:

  • 自动auto
  • 静态static
  • 寄存器registe
  • 外部extern

根据变量的存储类别,可以知道变量的作用域和存储期。

经典案例:C++实现判断闰年。

源码分析:

#include<iostream>//头文件 
using namespace std;//命名空间 
int main() 
{
  int year;//定义整型变量 
  cout<<"请输入要判断的年份:";//提示语句 
  cin>>year;//键盘输入年份 
  if((year%4==0 && year%100!=0)||year%400==0)//判断闰年的条件 
  {
    cout<<year<<"是闰年"<<endl;
  } 
  else
  {
    cout<<year<<"不是闰年"<<endl;
  } 
  return 0; //函数返回值为0 
}

编译后的结果:

请输入要判断的年份:2008
2008是闰年

--------------------------------
Process exited after 7.106 seconds with return value 0
请按任意键继续. . .

C++判断是否是闰年

更多案例可以go公众号:C语言入门到精通

正文完