局部变量

普通的局部变量也叫动态变量,默认有个关键字叫auto,可以省略。有两种形式:

1.函数内的局部变量

2.复合语句内的局部变量:for(int i = 0; i<5; i++){…}


静态局部变量只能在函数内定义,如:static int a;

函数外不能用,但每次调用会保留上一次的值


#include <stdio.h>
void buy() {
auto int timesAuto = 1;// 普通局部变量(auto可以省略)
printf("买%d件\n",timesAuto++); static int timesStatic = 1;// 静态局部变量
printf("-----static买%d件\n",timesStatic++);
} main() {
int i;
for(i= 1; i<=5; i++) {
buy();
}
}
买1件
-----static买1件
买1件
-----static买2件
买1件
-----static买3件
买1件
-----static买4件
买1件
-----static买5件

全局变量

普通全局变量:函数外定义,各文件都能使用,无需头文件引入,需extern引入

静态全局变量:函数外定义,自己文件内各函数都可使用,其他文件extern也用不了

f2.c

int a = 1;
// 静态全局变量不能在其他文件中使用
static int b = 2;

main.cpp

#include <stdio.h>

int main(int argc, char** argv) {
extern int a;
printf("全局变量a = %d\n", a);
// 静态全局变量不能在其他文件中使用
// extern int b;
// printf("static全局变量b = %d\n", b);
return 0;
}

同名变量

局部变量会覆盖同名的全局变量。

#include <stdio.h>
int n=1;
main() {
printf("外部变量 n = %d\n",n);
int n=2;
printf("局部变量 n = %d\n", n);
}
外部变量 n = 1
局部变量 n = 2

C语言内存分区

BSS:Block Started by Symbol

C语言讲义——全局变量和局部变量的更多相关文章

  1. 用汇编语言研究C语言的全局变量、局部变量、参数、返回值放在哪里

    前提知识 c0s调用main函数的地址: 11ah main函数的连接地址: 01fah 一.全局变量与局部变量 测试程序 int a1,a2,a3; void f(void); void g(voi ...

  2. C语言之全局变量和局部变量

    全局变量和局部变量的简介(tips:很重要 牢记) 全局变量:就是定义在函数外的变量 全局变量可以在任意函数中使用 生命周期:程序一启动就开辟空间,直到程序退出才回收 全局变量不允许同名 局部变量:就 ...

  3. C语言中全局变量、局部变量、静态全局变量、静态局部变量的区别 (转)

    1.C++变量根据定义的位置的不同的生命周期,具有不同的作用域,作用域可分为6种: 全局作用域,局部作用域,语句作用域,类作用域,命名空间作用域和文件作用域. 从作用域看: 1>全局变量具有全局 ...

  4. c语言,全局变量,局部变量,外部函数,内部函数,stasic和extern的复习总结

    @import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/c ...

  5. c语言全局变量和局部变量问题汇总

    .局部变量是否能和全局变量重名? 答:能,局部会屏蔽全局.要用全局变量,须要使用"::" 局部变量能够与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变 ...

  6. c语言全局变量与局部变量(当变量重名时)的使用情况

    在c语言中,变量有全局变量和局部变量之分,这一点和很多高级语言类似,如c#,java等.不过与c#,java中的局部变量如在全局变量作用域内则不允许与全局变量名相同,而c语言是允许这样做的.这样的做法 ...

  7. JavaScript 引入方式 语言规范 语言基础 数据类型 常用方法 数组 if_else 比较运算符 for while 函数 函数的全局变量和局部变量 {Javascript学习}

    Javascript学习 JavaScript概述 ECMAScript和JavaScript的关系 1996年11月,JavaScript的创造者--Netscape公司,决定将JavaScript ...

  8. JS函数 -- 功能,语法,返回值,匿名函数,自调用匿名函数,全局变量与局部变量,arguments的使用

    “JavaScript设计得最出色的就是它的函数的实现.” -- <JavaScript语言精粹> 函数包含一组语句,它们是JS的基础模块单元,用于指定对象的行为.一般来说,所谓编程,就是 ...

  9. 剖析javascript全局变量和局部变量

    首先要记住: javascript是弱类型语言,它只有一种变量类型(var),为变量赋值时会自动判断类型并进行转换. 全局变量和局部变量如何声明? 全局变量声明: 第一种方式(函数外) var a; ...

随机推荐

  1. elementui中弹出框不能自动换行的解决方案

    我们的需求是将客户给的这串无头脑的数据放进这个弹出框?! 可以看到element提供的弹出框并不提供换行的功能 所以这时候我们应该咋整呢?? 我试过了在这个弹出框中套个盒子给盒子添加宽?然后他自己就折 ...

  2. NB-IoT技术适合在哪些场景应用

    LPWAN,Low Power Wide Area Network,低功耗广域网.名字里就有它的两个最重要的特点:低功耗.广覆盖.目前比较主流的有:NB-IoT.LoRa.Sigfox.eMTC.NB ...

  3. NB-IoT成为3GPP后会有哪些优势

    NB-IoT无线接入的设计使用了很多LTE设计大的原则,并且得到了传统蜂窝网络和芯片组供应商的支持,使MBB取得了成功.NB-IoT采用与LTE(E-UTRA)相同的设计原则,尽管它使用单独的新载波, ...

  4. 我的 Redis 被入侵了

    好吧,我也做了回标题党,像我这么细心的同学,怎么可能让服务器被入侵呢? 其实是这样的,昨天我和一个朋友聊天,他说他自己有一台云服务器运行了 Redis 数据库,有一天突然发现数据库里的数据全没了,只剩 ...

  5. 动态规划入门——动态规划与数据结构的结合,在树上做DP

    本文由TechFlow原创,本博文仅作为知识点学习,不会用于任何商业用途! 今天我们来看一个有趣的问题,通过这个有趣的问题,我们来了解一下在树形结构当中做动态规划的方法. 这个问题题意很简单,给定一棵 ...

  6. leetcode17gas-station

    题目描述 环形路上有n个加油站,第i个加油站的汽油量是gas[i]. 你有一辆车,车的油箱可以无限装汽油.从加油站i走到下一个加油站(i+1)花费的油量是cost[i],你从一个加油站出发,刚开始的时 ...

  7. PHP无限级评论回复功能实现

    protected function commentList($aid,$pid = 0,&$result=array()){ $arr = ArticleComment::relation( ...

  8. 广度优先遍历&深度优先遍历

    一.广度优先算法BFS(Breadth First Search) 基本实现思想 (1)顶点v入队列. (2)当队列非空时则继续执行,否则算法结束. (3)出队列取得队头顶点v: (4)查找顶点v的所 ...

  9. python之 《进程之间数据交互和进程池》

    1.进程q 进程呢就相当于一个房子,线程就相当于是房子里面在工作的人,那么一个房子的空间对于房子里面的人来说是共享的, 现在是多进程,也就是说有许多房子,很显然这个房子的空间只属于这个房子,不会属于其 ...

  10. Ceph的参数mon_osd_down_out_subtree_limit细解

    前言 之前跟一个朋友沟通一个其他的问题的时候,发现了有一个参数 mon osd down out subtree limit 一直没有接触到,看了一下这个参数还是很有作用的,本篇将讲述这个参数的作用和 ...