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)的更多相关文章

  1. 全局变量 static变量

    变量 作用域 全局变量( external linkage ) 定义在函数外 Int a=1 作用于整个工程 在连接两个文件时若有两个a会报错 Staic 函数外(internal linkage) ...

  2. 关于c++11中static类对象构造函数线程安全的验证

    在c++11中,static静态类对象在执行构造函数进行初始化的过程是线程安全的,有了这个特征,我们可以自己动手轻松的实现单例类,关于如何实现线程安全的单例类,请查看c++:自己动手实现线程安全的c+ ...

  3. 局部变量,全局变量,extend,static

    main.c #include <stdio.h> #include "zs.h" /* 局部变量是定义在函数.代码块.函数形参列表.存储在栈中,从定义的那一行开始作用 ...

  4. c++11 跨平台多线程demo和qt 静态链接(std::thread有join函数,设置 QMAKE_LFLAGS = -static)

    #include <stdio.h>#include <stdlib.h> #include <chrono> // std::chrono::seconds#in ...

  5. OCJP(1Z0-851) 模拟题分析(一)11

    Exam : 1Z0-851 Java Standard Edition 6 Programmer Certified Professional Exam 以下分析全都是我自己分析或者参考网上的,定有 ...

  6. C++和Java中的静态Static用法

    C++和Java中都有的一个静态关键字Static,可以放在类中的变量或者函数之前,就成了静态变量或者静态函数. 静态变量又分为静态全局变量和静态局部变量,可参见网上大神总结的C++全局变量,局部变量 ...

  7. const,volatile,static,typdef,几个关键字辨析和理解

    1.const类型修饰符 const它限定一个变量初始化后就不允许被改变的修饰符.使用const在一定程度上可以提高程序的安全性和可靠性.它即有预编译命令的优点也有预编译没有的优点.const修饰的变 ...

  8. const,static,extern 简介

    const,static,extern 简介 一.const与宏的区别: const简介:之前常用的字符串常量,一般是抽成宏,但是苹果不推荐我们抽成宏,推荐我们使用const常量. 执行时刻:宏是预编 ...

  9. [C#6] 1-using static

    0. 目录 C#6 新增特性目录 1. 老版本的代码 1 using System; 2 3 namespace csharp6 4 { 5 internal class Program 6 { 7 ...

随机推荐

  1. Java_运算符

    目录 一.算术运算符 二.关系运算符 三.位运算符 四.赋值运算符 五.条件运算符 六.instanceof 运算符 七.逻辑运算符 一.算术运算符 加 减 乘 除 取余 自增 自减(+ - * / ...

  2. 盒模型、position、float详解css重点汇总

    元素类型 HTML 的元素可以分为两种: 块级元素(block level element) 内联元素(inline element 有的人也叫它行内元素) 两者的区别在于以下三点: 块级元素会独占一 ...

  3. mysql拼接字符串

    CONCAT(str1,str2,...) 如:在每一列meeting_persons的现有内容之上,增加15112319字符串 UPDATE wos_hrs.meeting_logs SET mee ...

  4. Windows Internals 笔记——作业

    1.Windows提供了一个作业内核对象,它允许我们将进程组合在一起并创建一个“沙箱”来限制进程能够做什么.创建只包含一个进程的作业同样非常有用,因为这样可以对进程施加平时不能施加的限制. 2.如果进 ...

  5. 使用wps插件,实现word转PDF

    项目需求:不打算用office自带的组件实现word转pdf操作 环境需求:安装wps2016专业版 新建一个控制台应用程序 添加引用:在COM下 Kingsoft Add-In Designer和U ...

  6. SQL反模式学习笔记8 多列属性

    目标:存储多值属性 反模式:创建多个列.比如一个人具有多个电话号码.座机号码.手机号码等. 1.查询:多个列的话,查询时可能不得不用IN,或者多个OR: 2.添加.删除时确保唯一性.判断是否有值:这些 ...

  7. 图片纯前端JS压缩的实现

    一.图片上传前端压缩的现实意义 对于大尺寸图片的上传,在前端进行压缩除了省流量外,最大的意义是极大的提高了用户体验. 这种体验包括两方面: 由于上传图片尺寸比较小,因此上传速度会比较快,交互会更加流畅 ...

  8. web服务-2、四种方法实现并发服务器-多线程,多进程,协程,(单进程-单线程-非堵塞)

    知识点:1.使用多线程,多进程,协程完成web并发服务器 2.单进程-单线程-非堵塞也可以实现并发服务器 1.多进程和协程的代码在下面注释掉的部分,我把三种写在一起了 import socket im ...

  9. EasyUI 分页 偶遇 问题

    当 存在大量 重复 数据字段的 时候 entity.AsNoTracking().ToList().Skip((page.pageNumber - 1) * page.rows).Take(page. ...

  10. jmeter基本组成原件介绍

    jmeter基本组成原件介绍 参考地址:https://wenku.baidu.com/view/d4986ca2aaea998fcc220ec1.html 从性能工具的原理划分: Jmeter工具和 ...