全局变量:定义在函数之外.(不安全)   局部变量;定义在函数之内.

内存的划分:1栈区   2堆区  3静态区(全局区) 4常量区 5代码区
栈区..静态区.常量区.代码区的数据都是由系统分配和释放空间.
堆区的内存必须自己去申请和释放.

1.栈区     栈区的数据以栈的形式存放(先进后出)
局部变量存放在栈区

2.静态区  (全局区)
被static修饰的变量和全局变量存放在静态区
static修饰符的作用:
1.修饰的变存放在静态区
2.修饰的变量只初始化一次
3.由static修饰的变量如果没有初始化,系统默认为0

3.常量区
存放常量,常量区的数据不可以修改

4.代码区
程序中运行的函数和语句都会编译成CPU指令存放在代码区
函数名 就是 函数在代码区的首地址

5.堆区
由开发人员手动申请和手动释放

申请内存函数:
void * malloc(size)
返回值类型    void  *    范类型(可以转化为其他任意类型)
//在堆区申请四个字节的空间,返回的是申请空间的首地址
-----------------------------------------------------------------------------------------

calloc(count,size)

calloc会对申请的内存空间先做一个清空操作.返回值也是申请空间的首地址.

-----------------------------------------------------------------------------------------

void  reallloc(*p,size)

从指针p的位置开始,重新申请(size)个字节.如果后面有size个连续的字节的话,就直接申请到位,如果不够的话,就先释放之前的内存,重新寻找size个连续的空间,为此,指针发生了重指向.

-----------------------------------------------------------------------------------------

void * malloc(dest,source,n)
从指针source拷贝n字节,拷贝到dest中.

----------------------------------------------------------------------------------------
int memcmp(*p1,*p2,n)
比较p1和p2指向的内存里面的内容是否相同,比较n个字节.如果相同,返回0,不同返回差值.
逐个字节(相对位置)比较,返回第一个差值.



============================================
堆区内存使用之后记得释放

// void free (void *)

//    free(p1);   //把对应的内存空间,职位 可用空间

//    p1=NULL;   //把指针 职位 空

版权声明:本文为博主原创文章,未经博主允许不得转载。

C语言基础:内存 分类: iOS学习 c语言基础 2015-06-10 21:59 23人阅读 评论(0) 收藏的更多相关文章

  1. Python调用C可执行程序(subprocess) 分类: python 服务器搭建 C/C++ shell 2015-04-13 21:03 87人阅读 评论(0) 收藏

    从Python 2.4开始,Python引入subprocess模块来管理子进程,以取代一些旧模块的方法:如 os.system.os.spawn.os.popen.popen2.commands. ...

  2. C语言中返回字符串函数的四种实现方法 2015-05-17 15:00 23人阅读 评论(0) 收藏

    C语言中返回字符串函数的四种实现方法 分类: UNIX/LINUX C/C++ 2010-12-29 02:54 11954人阅读 评论(1) 收藏 举报 语言func存储 有四种方式: 1.使用堆空 ...

  3. C语言基础总结 分类: iOS学习 c语言基础 2015-06-11 10:08 23人阅读 评论(0) 收藏

    //欲练此功必先自宫!!!     //第一天:C语言的基础     //进制     //2进制, 10进制, 8进制, 16进制     //注:8进制数前加0, 16进制数前加0x        ...

  4. C语言基础:初级指针 分类: iOS学习 c语言基础 2015-06-10 21:50 30人阅读 评论(0) 收藏

    指针:就是地址. &   取地址运算符 %p   打印地址占位符 int a=0; printf("%p ",&a);    指针变量:用来存放地址的变量 定义: ...

  5. C语言基础:函数(Function) 分类: iOS学习 c语言基础 2015-06-10 21:48 14人阅读 评论(0) 收藏

    函数:一段具有某些特定功能的代码段. 使用函数的严格规定: 1.函数声明 2.函数定义 3.函数调用 函数声明:告知系统编译器该系统的函数名,函数参数,参数类型,参数个数,参数顺序等等,以便函数调用时 ...

  6. C语言基础:结构体 分类: iOS学习 c语言基础 2015-06-10 21:47 28人阅读 评论(0) 收藏

    结构体:是一种用户自定义的数据类型 结构体定义 struct 结构体名 {     成员类型1  成员变量名1;     成员类型2  成员变量名2;      -. }; typedef   原类型 ...

  7. c语言基础:数据类型 分类: iOS学习 c语言基础 2015-06-10 21:43 9人阅读 评论(0) 收藏

    C语言基本数据类型大体上分为: 整型 和 浮点型   字节: 计算机中最小的储存单位     1 Byte = 8 bit 整型:         int     4                  ...

  8. C语言基础:进制转换,变量,常量,表达式,基本数据类型,输出函数,输入函数,运算符. 分类: iOS学习 c语言基础 2015-06-10 21:39 25人阅读 评论(0) 收藏

    二进制:以0b开头,只有0和1两种数字.如0101 十进制:0~9十个数字表示.如25 十六进制:以0~9,A~F表示,以0X开头.如0X2B 十进制转换为X进制:连除倒取余 X进制转换为十进制:按权 ...

  9. C语言基础:数组 分类: iOS学习 c语言基础 2015-06-10 21:40 7人阅读 评论(0) 收藏

    数组:是由一组具有相同数据类型的数据组合而来. 数组定义:元素类型修饰符 数组名[数组个数]={元素1,元素2....};  int arr[ 2 ]={1,2};    //正确 int arr[ ...

随机推荐

  1. List<T>随机返回一个

    /// <summary> /// 随机返回一条数据 /// </summary> /// <param name="list"></pa ...

  2. ros 编译指定包

    一.编译到devel目录在工作空间下(有devel文件夹的那个目录)执行 catkin_make --pkg 包名 如果报错,执行catkin_make -DCATKIN_WHITELIST_PACK ...

  3. Python将某文件夹及其子文件夹下某种格式的文件移动到另一个指定的文件下

    主要是理解好上面的1~3点的内容,理解三个返回值所代表的意思.如果不清楚的话,可以在代码的for循环的第一句注释输出看看各个代表的是什么 再者就是对 shutil.copy(file_path,new ...

  4. android listview的HeadView左右切换图片(仿新浪,网易,百度等切换图片)

    首先我们还是看一些示例:(网易,新浪,百度) 显示效果都不错,可是手感就不一样了,百度最棒,网易还行,新浪就操作很不好,这里我说的是滑动切换图片.自己可以测试一下.不得不说牛叉的公司确实有哦牛叉的道理 ...

  5. 20161227xlVBA多文件合并计算

    Sub NextSeven_CodeFrame() '应用程序设置 Application.ScreenUpdating = False Application.DisplayAlerts = Fal ...

  6. 4-2 Ajax练习题,12结算!Check Out。

    练习题:在购物车的每个商品旁添加按钮,按一下减一个,数量为0删除该商品.先用普通方法再用Ajax支持. 1.自定义方法decrease, 为其设定路径routes.rb. 在resouurces :l ...

  7. memcached-1.4.20 主要启动流程笔记

    以下笔记主要是关注tcp模式下memcached的启动过程. main() 设置信号处理函数为sig_handler() 初始化系统设置,保存在全局变量settings里面 settings_init ...

  8. Java 历史

    James Gosling 最初开始 Java 语言项目是在 1991 年的 7 月.Java 被用在他的许多 set-top box 工程中.这个语言最开始的时候被称为 Oka,这个是因为 Jame ...

  9. Confluence 6 使用 LDAP 授权连接一个内部目录 - 用户 Schema 设置

    请注意:这部分仅在拷贝用户登录(Copy User on Login)功能被启用后可见. 其他用户 DN(Additional User DN) 这个值被用在进行用户查找和载入的时候来针对 base ...

  10. Krapno 1

    All krpano software can be downloaded and tested for free - without any functional limitation.For us ...