指针入门(三)

指针和内存

c程序在编译后,主要有3种使用内存的方式:

(1)静态/全局内存:这里的变量在程序开始时分配,程序终止内存消失。所有函数都能访问全局变量,静态变量的作用域则局限在定义该变量的函数内部。

(2)自动内存:主要在函数内部声明,函数在调用时才创建,声明周期与被调用函数一样短暂。

(3)动态内存:对上分配内存,根据需要创建和释放,释放后即会消失。指针引用分配的内存,作用域局限在引用内存指针。

指针主要用来操作内存中的数据,理解内存的分区和组织方法更容易弄清指针如何操作内存。

 

指针的基本概念:

(1)指针变量:内存中别的变量、对象或函数的地址。

(2)指针对象:内存分配函数(malloc)分配的内存。

(3)指针的类型:通常根据指针所致的数据类型进行声明。

(4)指针对象:可以是任何合法的C数据类型,基本类型或合成类型等。

(5)指针本身:不包含所引用数据类型信息,只包含地址。


指针的用途:

(1)动态内存分配

(2)传递数据结构

(3)作为参数传递给函数

(4)作为返回数据的类型

(5)高效访问数组

(6)更容易访问合成数据类型


指针的缺点(空针错误):

(1)访问数组和其他结构时越界

(2)自动变量消失后被引用

(3)堆上分配的内存释放后被引用

(4)内存分配前解引指针

 

posted @ 2015-04-05 21:03  叕叒双又  阅读(234)  评论(0编辑  收藏  举报