您的位置:首页 > 编程语言 > C语言/C++

C语言:变量存储类别

2017-07-22 15:58 232 查看
任务代码:

外部变量:(用extern声明外部变量:一个文件内的全局变量)

#include <stdio.h>
int max(int,int);
int main( )
{
extern int a,b; //对全局变量a,b作提前引用声明
printf("%d\n", max(a,b));
return 0;
}
int a=15,b=-7;   //定义全局变量a,b
int max(int x,int y)
{
int z;
z=x>y?x:y;
return z;
}


静态变量和自动变量:

#include <stdio.h>
int f(int a)
{
auto int b=0;
static int c=3;
b=b+1;
c=c+1;
return a+b+c;
}
int main( )
{
int a=2,i;
for(i=0; i<3; i++)
printf("%d ", f(a));
printf("\n");
return 0;
}


静态变量运用:(程序计数器)

#include <stdio.h>
int count_calls()
{
static int ctr=0;
return ++ctr;
}
int main( )
{
int i;
for(i=0; i<10; i++)
printf("%d\n", count_calls());
return 0;
}

关于静态变量初始化:

#include<stdio.h>
void add()
{
int x=0;
static int y=0;
printf("%d,%d\n",x,y); //0,0,0,2,注意第二次虽然在此命名静态变量y=0,但是上一次执行完的y不会被重新初始化!
x++;
y=y+2;
}

int main()
{
int i;
for(i=0; i<2; i++)
add();
return 0;
}


执行情况:

执行1:



执行 2:



执行3:



知识总结:



由此引出4种存储类别变量



自动变量:



寄存器变量:

寄存器是cpu的重要组成部分,英语叫cache,是一个运算速率快但是存储空间小的内存。起作用主要用于高速数据缓存交换到运算器和ROM中

因此,寄存器变量用于设置一段程序中重复大量使用的变量;有利于是程序加速!



外部变量

当变量声明位置不在函数之前的时候,想被之前的函数调用,那就需要用外部变量来声明如下:



静态局部变量:(性质如下)

!!当处于函数里面的变量如果设值为静态局部变量,该变量在函数调用结束后不会内存释放吗,会保留!!!!!



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: