day03

内存分区图示

内存分区.png
各个内存区域的说明
代码区(Code)

-- 代码不变的
-- 分配, 释放方式 : 编译器分配内存, 程序退出时系统自动释放内存;
-- 存放内容 : 存放函数体的二进制代码(所有的可执行代码)。
比如: int a;就不是可执行代码,而是只在内存中申请了一个
空间而已,
a=10;是可执行代码;

静态区

-- 存放的是静态变量static 和全局变量
-- 分配, 释放方式 : 编译器分配内存, 程序退出时系统自动释放内存;
-- Static
static 关键字不仅可以用来修饰变量,还可以用来修饰函数。在使用
static 关键字修饰变量时,我们称此变量为静态变量,只初始化1次。

全局静态变量
--静态存储区
--默认初始化为0
--全局静态变量在声明他的文件之外是不可见的。准确地讲从定义
--之处开始到文件结尾。

局部静态变量
--静态存储区
--默认初始化为0
--作用域仍为局部作用域

Static局部变量&全局变量 总结

-- 局部变量 加上 static , 相当于将局部变量的生命周期扩大到了整个文件, 作用域不改变;
-- 全局变量 : 全局变量 加上 static , 相当于将全局变量的作用域缩小到了单个文件, 生命周期是整个程序的周期;

栈区 (stack)

-- 分配, 释放方式 : 由编译器自动分配 和 释放;
-- 存放内容 : 局部变量和形式参数;
-- 特点 : 具有 后进先出 特性, 空间小,容易发生栈溢出。

堆区(heap)--之后详解
-- 分配, 释放方式 : 由程序员手动 分配(malloc) 和 释放(free),[谁申请谁
释放]
-- 存放内容 : 存放程序运行中 动态分配 内存的数据;
-- 特点 : 不需要满足先进后出的结构,而且可使用空间较栈区大的多,
大小不固定, 可能会动态的 放大 或 缩小;
-- 堆区使用不善会导致内存泄漏

流程控制

if语句

单分支
if(条件表达式)
{...}
当条件表达式为真的时候执行,假的时候不执行

if ...else
if ...else if...else

注意:else后面没有小括号,当有多个else的时候,else总是和上方最近的if配对。

switch

switch(表达式){
case 常量表达式1: 语句1;
case 常量表达式2: 语句2;

case 常量表达式n: 语句n;
default: 语句n+1;
}
注意:switch括号里面可以是整型、字符型、枚举型表达式,而case后面只能是常量表达式(整数或者是结果为整数的表达式,但不能包含任何变量),而且后面的常量结果不能相同。

while do...while for

参照课上笔记部分,有详解。

数组

语法部分参照课件,未完待续day04

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 13,805评论 1 32
  • 几种语言的特性 汇编程序:将汇编语言源程序翻译成目标程序编译程序:将高级语言源程序翻译成目标程序解释程序:将高级语...
    囊萤映雪的萤阅读 8,025评论 1 5
  • Lua 5.1 参考手册 by Roberto Ierusalimschy, Luiz Henrique de F...
    苏黎九歌阅读 14,742评论 0 38
  • 概念解读 无论同一面连续出现多少次,扔硬币的每一轮,正反面仍是50%的概率。这听上去和部分人的直觉有着巨大的冲突,...
    那些来了去了的人阅读 4,702评论 0 1
  • 故事的主角主要有以下两个人物: 我 and 小伟 事情主要发生在2月9日我回归我开的火车上,主要情节将在下文叙述....
    X_Y的略懂人生阅读 2,454评论 0 0