11.全局变量(static)
1.数组
数组名是常量
2. 指针数组

4.局部变量
(1).作用域
作用的范围;
(2).普通局部变量
在{}内定义;
只有执行到定义变量的这个语句,系统才会给这个变量分配空间。
当离开{},这个非static局部自动释放;
局部变量的作用域在当前{},离开此{},无法使用变量;
{}里的普通局部变量,加不加auto关键字等价,普通局部变量也叫自动变量;
在不同{}里的变量名字可以一样。
普通局部变量,加不加auto都一样,普通局部变量也叫自动变量!

(3).static局部变量
static局部变量,是在编译阶段就已经分配空间,函数没有调用它就已经存在;
当离开{},static局部变量不会释放,只有程序结束,static变量才会自动释放;
静态局部变量不初始化,它的默认值为零;
static局部变量初始化语句,只会执行一次,但是可以赋值多次;
static只能使用常量初始化;
普通局部变量和static局部变量的区别:
1.内存分配和释放的区别;
a).普通局部变量只有在执行到定义变量的语句才分配空间;
b).static局部变量在编译阶段(函数还没执行),变量就已经分配空间;
c).普通局部变量离开作用域{},自动释放内存空间;
d).static局部变量只有在整个程序结束后才自动释放;
2.初始化
a).普通局部变量不初始化时,值为随机数;
b).static局部变量不初始化,值为零;
c).static局部变量初始化语句只有第一次执行时有效;
d).static局部变量只能用常量初始化。
5.普通全局变量(外部链接)
1.在{}外面定义,定义的变量为全局变量;
2.只有定义了全局变量,在任何地方都能使用此变量;
3.如果使用变量时,再前面找不到此全局变量的定义,需要声明才能使用(extern);
4.全局变量不初始化,默认赋值为0;
5.声明只是针对全局变量,不是针对局部变量;
6.只能定义一次,声明多次;
7.全局变量在编译极端就已经分配内存空间(函数没有执行前),只有在整个程序结束,才自动释放;
//1.定义一个全局变量,同时初始化 ;
int a = ;
//2.如果声明一个全局变量,尽量用extern声明;
extern int a;
6.static全局变量(内部链接)
a)static全局变量和普通全局变量的区别就是作用域不一样(文件作用域)
b)extern关键字只适用于普通全局变量
c)普通全局变量,所有的文件都能使用,前提需要声明
d)static全局变量只能本文件使用,别的文件不能使用
e)不同的文件只能出现一个普通全局变量的定义
f)一个文件只能有一个static全局变量的定义,不同文件间的static全局变量名字一样,也是两个不相同的变量
(5).普通函数和static函数的区别
11.全局变量(static)的更多相关文章
- 全局变量 static变量
变量 作用域 全局变量( external linkage ) 定义在函数外 Int a=1 作用于整个工程 在连接两个文件时若有两个a会报错 Staic 函数外(internal linkage) ...
- 关于c++11中static类对象构造函数线程安全的验证
在c++11中,static静态类对象在执行构造函数进行初始化的过程是线程安全的,有了这个特征,我们可以自己动手轻松的实现单例类,关于如何实现线程安全的单例类,请查看c++:自己动手实现线程安全的c+ ...
- 局部变量,全局变量,extend,static
main.c #include <stdio.h> #include "zs.h" /* 局部变量是定义在函数.代码块.函数形参列表.存储在栈中,从定义的那一行开始作用 ...
- c++11 跨平台多线程demo和qt 静态链接(std::thread有join函数,设置 QMAKE_LFLAGS = -static)
#include <stdio.h>#include <stdlib.h> #include <chrono> // std::chrono::seconds#in ...
- OCJP(1Z0-851) 模拟题分析(一)11
Exam : 1Z0-851 Java Standard Edition 6 Programmer Certified Professional Exam 以下分析全都是我自己分析或者参考网上的,定有 ...
- C++和Java中的静态Static用法
C++和Java中都有的一个静态关键字Static,可以放在类中的变量或者函数之前,就成了静态变量或者静态函数. 静态变量又分为静态全局变量和静态局部变量,可参见网上大神总结的C++全局变量,局部变量 ...
- const,volatile,static,typdef,几个关键字辨析和理解
1.const类型修饰符 const它限定一个变量初始化后就不允许被改变的修饰符.使用const在一定程度上可以提高程序的安全性和可靠性.它即有预编译命令的优点也有预编译没有的优点.const修饰的变 ...
- const,static,extern 简介
const,static,extern 简介 一.const与宏的区别: const简介:之前常用的字符串常量,一般是抽成宏,但是苹果不推荐我们抽成宏,推荐我们使用const常量. 执行时刻:宏是预编 ...
- [C#6] 1-using static
0. 目录 C#6 新增特性目录 1. 老版本的代码 1 using System; 2 3 namespace csharp6 4 { 5 internal class Program 6 { 7 ...
随机推荐
- vue2.0 事件处理常用修饰符-----------------记录,加强记忆。
1,<!-- 阻止单击事件继续传播 --> <a v-on:click.stop="doThis"></a> stop修饰符对应的是阻止冒泡的e ...
- ionic3 验证比特币,以太坊,莱特币和其他流行的加密货币地址
Install ❯❯❯ npm install cryptaddress-validatorionic3 中的引入 import * as cryptaddress from 'cryptaddres ...
- svn"database disk image is malformed"错误解决
本文是svn出现类似如下问题的两种解决方案. svn: E200030: database disk image is malformed 一.最简单的方法,复制其它人的.svn/wc.db替换. 二 ...
- 详解 CAP 定理 Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性)
CAP原则又称CAP定理,指的是在一个分布式系统中,Consistency(一致性). Availability(可用性).Partition tolerance(分区容错性),三者不可得兼. 分布式 ...
- 一键配置高可用Hadoop集群(hdfs HA+zookeeper HA)
准备环境 3台节点,主节点 建议 2G 内存,两个从节点 1.5G内存, 桥接网络 关闭防火墙 配置ssh,让节点之间能够相互 ping 通 准备 软件放到 autoInstall 目录下,已存放 ...
- sklearn交叉验证-【老鱼学sklearn】
交叉验证(Cross validation),有时亦称循环估计, 是一种统计学上将数据样本切割成较小子集的实用方法.于是可以先在一个子集上做分析, 而其它子集则用来做后续对此分析的确认及验证. 一开始 ...
- Linux内核原理与分析-第一周作业
本科期间,学校开设过linux相关的课程,当时的学习方式主要以课堂听授为主.虽然老师也提供了相关的学习教材跟参考材料,但是整体学下来感觉收获并不是太大,现在回想起来,主要还是由于自己课下没有及时动手实 ...
- 程序一 用记事本建立文件src.dat,其中存放若干字符。编写程序,从文件src.dat中读取数据,统计其中的大写字母、小写字母、数字、其它字符的个数,并将这些数据写入到文件test.dat中。
用记事本建立文件src.dat,其中存放若干字符.编写程序,从文件src.dat中读取数据,统计其中的大写字母.小写字母.数字.其它字符的个数,并将这些数据写入到文件test.dat中. #inclu ...
- python ironicclient源码分析
ironicclient是一个cli工具,用来和用户交互的. 首先写一个简单的例子,获取ironic所有的node节点: from ironicclient import client if __na ...
- 转 Using Async for File Access
原文:https://msdn.microsoft.com/en-us/library/jj155757.aspx using System; using System.Collections.Gen ...