第22讲 动态数组精选PPT.ppt
《第22讲 动态数组精选PPT.ppt》由会员分享,可在线阅读,更多相关《第22讲 动态数组精选PPT.ppt(10页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第第第2222讲讲讲讲 动态数组动态数组动态数组动态数组第1页,此课件共10页哦学习方法学习方法读程序:上机单步执行(跟踪法)观察读程序:上机单步执行(跟踪法)观察程序的执行顺序以及程序中各变量的值程序的执行顺序以及程序中各变量的值的变化。或者人工模拟计算机执行,要的变化。或者人工模拟计算机执行,要手工进行计算。手工进行计算。写程序:写程序:先逐层地写算法!先逐层地写算法!再写程序!再写程序!2第2页,此课件共10页哦重要提示:重要提示:什么时候用指针:什么时候用指针:当想用指针间接引用变量的时候当想用指针间接引用变量的时候当想希望用指针提高程序效率的时候当想希望用指针提高程序效率的时候不要
2、:不要:能直接引用变量的时候不要用指针能直接引用变量的时候不要用指针能用数组名字指针数组的时候不要用指针能用数组名字指针数组的时候不要用指针3第3页,此课件共10页哦问题问题当我们处理实际问题时,如何申请空间当我们处理实际问题时,如何申请空间?int a100;/*总是有一定的浪费总是有一定的浪费*/int an;/*不合法不合法*/如何根据实际需要申请如何根据实际需要申请n个内存存放个内存存放n个个数据?数据?4第4页,此课件共10页哦四、动态分配内存四、动态分配内存?问题:如何解决根据班级实际人数来定问题:如何解决根据班级实际人数来定义数组?义数组?自己根据实际需要向系统申请内存自己根据实
3、际需要向系统申请内存如何申请呢?如何申请呢?5第5页,此课件共10页哦三个相关库函数三个相关库函数#includeinclude void*malloc(unsigned int size);size);向系统申请大小为向系统申请大小为向系统申请大小为向系统申请大小为sizesize的内存块,把首地址返回。如果申的内存块,把首地址返回。如果申的内存块,把首地址返回。如果申的内存块,把首地址返回。如果申请不成功,返回请不成功,返回请不成功,返回请不成功,返回NULLNULLvoid*calloc(unsigned intunsigned int num,unsigned int size);向系
4、统申请向系统申请向系统申请向系统申请numnum个个个个sizesize大小的内存块,把首地址返回。如果大小的内存块,把首地址返回。如果大小的内存块,把首地址返回。如果大小的内存块,把首地址返回。如果申请不成功,返回申请不成功,返回申请不成功,返回申请不成功,返回NULLNULLvoid free(free(voidvoid*p);*p);释放由释放由释放由释放由malloc()malloc()和和和和calloc()calloc()申请的内存块。申请的内存块。申请的内存块。申请的内存块。p p是指向此块的是指向此块的是指向此块的是指向此块的指针指针指针指针void*类型的指针可以指向任意类型
5、的变量类型的指针可以指向任意类型的变量6第6页,此课件共10页哦动态数组举例动态数组举例1动态一维数组动态一维数组2动态二维数组,但看成一维数组动态二维数组,但看成一维数组3动态二维数组动态二维数组7第7页,此课件共10页哦动态一维数组动态一维数组#include#include#include#includevoid main()void main()int i,n,int i,n,*p=NULL*p=NULL;printf(Please enter array size:);printf(Please enter array size:);scanf(%d,&n);scanf(%d,&n)
6、;p=(int*)malloc(n*sizeof(int);/p=(int*)malloc(n*sizeof(int);/根据上边输入的人数申请内存根据上边输入的人数申请内存根据上边输入的人数申请内存根据上边输入的人数申请内存printf(please input%d intergers,n);printf(please input%d intergers,n);for(i=0;in;i+)/for(i=0;in;i+)/为动态数组输入数据为动态数组输入数据为动态数组输入数据为动态数组输入数据scanf(%d,scanf(%d,&pi&pi);/);/也可以用也可以用也可以用也可以用scanf
7、(%d,scanf(%d,p+ip+i););puts(the array is:);puts(the array is:);for(i=0;in;i+)for(i=0;in;i+)printf(%4d,pi);printf(%4d,pi);free(p);/free(p);/释放申请的内存空间释放申请的内存空间释放申请的内存空间释放申请的内存空间 8第8页,此课件共10页哦动态二维数组,但看成一维数组来处理动态二维数组,但看成一维数组来处理(通过列地址引用二维数组元素通过列地址引用二维数组元素)#include#include#include#includevoid main()void m
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第22讲 动态数组精选PPT 22 动态 数组 精选 PPT
限制150内