C语言深度解析
xidianliusoftware
这个作者很懒,什么都没留下…
展开
-
static关键字的使用
1. static a. 静态全局变量:作用域仅限于变量被定义的文件中。 b. 静态局部变量: 在函数体里面定义的,就只能在这个函数里用,由于被static修饰的变量总是存在内存的静态区,所以即使 这个函数运行结束,这个静态变量的值还是不会被销毁,函数下次使用时仍然能用到这个值。 例1: #incl原创 2011-11-16 18:49:29 · 288 阅读 · 0 评论 -
valatile用法
volatile是一种类型修饰符,用它修饰的变量表示可以被某些编译器未知的因素更改,比如操作系统,硬件或者其他线程等。 遇到这个关键字声明的变量,编译器对访问改变量的代码就不再进行优化,从而可以提供对特殊地址的稳定稳定。 volatile int 10; int j=i; int k=i; volatile告诉编译器i是随时可能发生变化的,每次使用原创 2011-11-24 19:57:01 · 382 阅读 · 0 评论 -
函数指针、指针数组与数组指针
指针数组:首先它是一个数组,数组的元素都是指针,数组占多少个字节由数组本身决定。 数组指针:首先它是一个指针,它指向一个数组,在32位系统下永远占4个字节。 函数指针: A. int *p1[10]; [ ]的优先级高于*,p1先与[ ]结合,构成一个数组的定义,数组名为p1,int * 修饰的是数组的内容,即数组的每个元素。 B. int (*p2)[10]; (原创 2011-11-24 21:56:22 · 379 阅读 · 1 评论 -
内存管理
静态区:保存自动全局变量和static变量(包括static全局和局部变量)。静态区的内容在整个程序的生命周期内都存在,有编译器在编译的时候分配。 栈: 保存局部变量。栈上的内容只在函数的范围内存在,当函数运行结束,这些内容、也会自动被销毁。其特点是效率高,但空间大小有限。 堆:由 malloc系列函数或 new操作符分配的内存。其生命周期由 free或 delete决定。 在没有释放之前一原创 2011-12-03 15:44:36 · 211 阅读 · 0 评论