[高等教育]C语言程序设计第9章 高级语言程序设计C--指针
程序运行的情况如下: 23 说明: (1)语句int (*p)[2][3];声明了一个指向二维数组的指针变量p,p所指向的二维数组的二维长度分别为2和3。本质上,p指针指向了二维数组,所以它是一个指向二级指针的指针,即为三级间址。 (2)语句p=a; 使指针p指向了二维数组a,下面就可以通过指针p来访问它所指向的二维数组的各元素。表达式*p的值为a,(*p+1)指向一维数组a[1],*(*p+1)+2指向二维数组元素a[1][2],所以程序运行结果为23。 9.5 多级间址 第九章 指针(pointer) 内容提要 指针的概念 指针与数组 指针与字符串 指针与函数 多级间址 动态内存分配 9.6 动态内存分配 指针为C的动态存储分配提供了必要的支持。动态分配(dynamic allocation)是程序在运行中取得内存的方法。全局变量是编译时分配的,局部变量使用栈空间,二者都不能在运行时增减。然而,程序运行中也可能需要数量可变的内存空间。这时,就需要通过C的动态分配系统,按需要量动态分配存储空间。 C动态分配函数从堆(heap)(系统的自由内存区)中取得内存。堆中的自由内存量一般都很大。 C动态内存分配系统的核心由函数malloc()和free()组成,其它几个动态分配函数不甚重要。这些函数协作,用自由内存区建立并维护一个可用内存表。malloc
原创力文档

文档评论(0)