1.static静态全局变量
它储存在全局数据区,每次只初始化一次,等程序结束时方才释放内存。
例如:
#include<stdio.h>
int main( )
static int i=0;
{
int c,k=0;
for(k=0;k<3;k++)
{
int c;
c=++i;
printf("%d",c);
}
return 0;
}
输出结果就是 :
1
2
3
此时相较于auto变量
例如:
#include<stdio.h>
int main( )
int i=0;
{
int c,k=0;
for(k=0;k<3;k++)
{
int c;
c=++i;
printf("%d",c);
}
输出结果就是 :
1
2
3
输出结果相同,那是因为static全局变量与auto全局变量在语句中都是储存上一个值的,具有记忆功能。
2.静态局部变量
普通的局部变量在栈空间上分配,这个局部变量所在的函数被多次调用时,每次调用这个局部变量在栈上的位置都不一定相同。局部变量也可以在堆上动态分配,但是记得使用完这个堆空间后要释放之。
例如:
#include<stdio.h>
int main( )
{
void c( );
c();
c();
c();
return 0;
}
c( )
{
static int i=0;
i++;
printf("%d",i);
}
输出结果:
1
2
3
可见静态局部变量也是只初始化一次,以后每次去调用函数都是使用上次储存的那个值。
相较于 auto变量
例如:
#include<stdio.h>
int main( )
{
void c( );
c();
c();
c();
return 0;
}
c( )
{
int i=0;
i++;
printf("%d",i);
}
输出结果则就是:
1
1
1
auto变量则是每次调用一次函数重新对相应的变量初始化一次,所以每次调用函数之后输出的值都一样。

static的用法及其与auto的区别小结相关推荐

  1. 【C++】C/C++ 中 static 的用法全局变量与局部变量

    C/C++ 中 static 的用法全局变量与局部变量 目录 1. 什么是static? 1.1 static 的引入 1.2 静态数据的存储 2. 在 C/C++ 中static的作用 2.1 总的 ...

  2. C和C++中static的用法及友元

    C和C++中static的用法 文章目录 C和C++中static的用法 一.**C语言中**: 二.**C++中**: 三.**友元**: 一.C语言中: static 修饰全局变量表示该变量只在本 ...

  3. C/C++中static的用法全局变量与局部变量

    转载自C/C++中static的用法全局变量与局部变量 1.什么是static? static 是C/C++中很常用的修饰符,它被用来控制变量的存储方式和可见性. 1.1static的引入 我们知道在 ...

  4. 分号与逗号的区别及举例_如何掌握分号的用法 和顿号有什么区别

    如何掌握分号的用法 和顿号有什么区别2019-03-08 15:57:09文/李男 考试中作文成绩因为标点符号丢分的情况时有发生,看到这样丢分的情况,令人叹息.下面小编整理了一些关于分号的用法,供大家 ...

  5. static全局变量与普通的全局变量有什么区别?static局部变量和普通局部变量有什么区别?static函数与普通函数有什么区别?...

    答案:全局变量(外部变量)的说明之前再冠以static 就构成了静态的全局变量.全局变量本身就是静态存储方式,静态全局变量当然也是静态存储方式. 这两者在存储方式上并无不同.这两者的区别虽在于非静态全 ...

  6. 《编码规范和测试方法——C/C++版》作业 ·002——函数返回地址、static关键词用法整理

    文章目录 一.函数返回地址的情形 1.函数返回值为指针 二.static关键字用法整理 1.static全局变量 2.static局部变量 3.static函数 4.类的static成员数据 5.类的 ...

  7. CSS中z-index:0 与 z-index:auto的区别

    z-index:0 与 z-index:auto的区别 区别: z-index: 0 会创建一个新的层叠上下文 z-index: auto 不会去创建 z-index: 0 会在 z-index: 上 ...

  8. C语言初阶-C语言中static的用法

    目录 前言 1.static的定义 2.static修饰局部变量 2.static修饰全局变量 3.static修饰函数 总结: 前言 哈喽,大家好,我是大鹏,目前是一名大二的学生,今天给大家带来的是 ...

  9. C语言中,#include的用法:#include 和 #include区别

    C语言中,#include的用法:#include "" 和 #include<>区别 采用 " ":依次搜索当前目录.包括/I编译开关的路 ...

最新文章

  1. python代码块使用缩进表示-python中的代码块使用缩进来表示。
  2. 引路蜂地图API:Drawing包定义
  3. CSS样式优先级与权重计算方式
  4. 利用jquery getJSON 调用ashx实现ajax调用
  5. vert.x_使用vert.x 2.0,RxJava和mongoDB创建simpe RESTful服务
  6. vue2.x vant2.x H5 移动端脚手架
  7. React 点击按钮显示div与隐藏div
  8. iscroll上拉加载、下拉刷新
  9. (转)淘淘商城系列——首页轮播图展示
  10. 10种进阶方法让你快速测试端口连通性
  11. kindle5 去广告
  12. linux shell 数字计算详解
  13. 使用js获取ajax对象,JS获取dom 对象 ajax操作 读写cookie函数
  14. 小猿圈python_小猿圈python之内置方法new
  15. FlinkSQL快速入门
  16. 高等数学18讲(19版)反常积分的计算与敛散性判别
  17. 高等数学与计算机的关联论文,高等数学改革管理计算机信息论文
  18. DruidDataSource配置说明
  19. 你这一生其实只有9年
  20. 字节跳动或推独立出口电商APP,亚马逊阿里虾皮:不慌

热门文章

  1. 原创 子网划分的讲解 例题加思路
  2. [j2me]手机也可以玩播客(Podcast)! Geek开发说明[开源]
  3. web百度地图 地址解析获取百度地理坐标
  4. windows下git命令的使用
  5. 会场安排问题 http://acm.nyist.net/JudgeOnline/problem.php?pid=14
  6. linux cal 命令详解
  7. java调度:(六)quarts_cron表达式
  8. Codeforces Round #734 (Div. 3) 题解
  9. kubernetes之一步一个坑
  10. 有哪些非关系型数据库