8.5指针数组、指向指针的指针
1.指针数组指的是一个数组,其元素均为指针类型数据,也就是说,指针数组中的每一个元素都是指针变量。指针数组的定义形式为:
类型标识*数组名[数组长度说明]
指针数组可以使字符串处理更加方便。
2.指向指针的指针是指指向指针数据的指针变量,一个指向指针数据的指针变量的一般形式为:
类型标识**p;
8.6main函数的命令参数
指针数组的一个重要应用是作为main函数的形参,一般来说,main函数后的括号中是空的,即没有参数。实际上main可以有参数,如:
main(argc,argv)
其中,argc和argv就是main函数的形参。其他函数形参的值可以通过函数调用语句的实参中得到,由于main函数是由系统调用的,因而main函数的形参值不能从程序中得到,但可以在操作系统状态下,将实参和命令一起给出,从而使main函数的形参得到值。命令行的一般形式为:
命令名参数1参数2…参数n
命令名和各参数之间用空格分隔开。
8.7动态存储分配
在C语言中有一种称为“动态存储分配”的内存空间分配方式:程序在执行期间需要存储空间时,通过“申请”分配指定的内存空间;当闲置不用时,可随时将其释放,由系统另作它用。本节介绍C语言中动态分配系统的主要函数:malloc()、calloc()、free()及realloc(),使用这些函数时,必须在程序开头包含文件stdlib.h。
1.主内存分配函数—malloc()
函数格式:void*malloc(unsignedsize);
函数功能:从内存中分配一大小为size字节的块。
参数说明:size为无符号整型,用于指定需要分配的内存空间的字节数。
返回值:新分配内存的地址,如无足够的内存可分配,则返回NULL。
说明:当size为0时,返回NULL。
2.主内存分配函数——calloc()
函数格式:void*malloc(unsignedn,unsignedsize);
函数功能:从内存中分配n个同一类型数据项的连续存储空间,每个数据项的大小为size字节。
参数说明:n为无符号整型,用于指定分配的数据项的个数size为无符号整型,用于指定需要分配的数据项所占内存空间的字节数。
返回值:新分配内存的地址,如无足够的内存可分配,则返回NULL。
3.重新分配内存空间函数——realloc()
函数格式:void*realloc(void*block,unsignedsize);
函数功能:将block所指内存区的大小改为size字节的块。
参数说明:block为void类型的指针,指向内存中某块,size为无符号整型,用于指定需要分配的内存空间的字节数。
返回值:新分配内存的地址,如无足够的内存可分配,则返回NULL。
4.释放内存函数—free()
函数格式:voidfree(void*block);
函数功能:将calloc()、malloc()及realloc()函数所分配的内存空间释放为自由空间。
参数说明:block为void类型的指针,指向要释放的内存空间。
返回值:无。
2015年全国职称计算机考试教材(2007模 .. 定价:¥225 优惠价:¥213 更多书籍 | |
全国职称计算机考试速成过关系列套装:W .. 定价:¥133 优惠价:¥133.0 更多书籍 |