收藏 分享(赏)

中央电大市场营销考试资料整理 名词解释.doc

上传人:教育咨询 文档编号:2983626 上传时间:2020-10-23 格式:DOC 页数:7 大小:36.51KB
下载 相关 举报
中央电大市场营销考试资料整理 名词解释.doc_第1页
第1页 / 共7页
中央电大市场营销考试资料整理 名词解释.doc_第2页
第2页 / 共7页
中央电大市场营销考试资料整理 名词解释.doc_第3页
第3页 / 共7页
中央电大市场营销考试资料整理 名词解释.doc_第4页
第4页 / 共7页
中央电大市场营销考试资料整理 名词解释.doc_第5页
第5页 / 共7页
亲,该文档总共7页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、 (4) int *top=calloc(M+1,sizeof(int*); /top动态数组含有M+1个元素,每个元素能够存储一个整数的地址。 4. 动态存储分配的优点允许在程序运行过程中随时确定待使用的存储空间的大小,不必象静态分配那样需要事先确定。一般定义一个数组时,必须确切给出数组的每一维的尺寸,如:int a10, bMN; /M和N必须是已经定义的符号常量动态分配定义一个数组时,所分配的存储空间的大小可以是常量,也可以是变量。如:(1) int a=calloc(10,4); /两个参数都为常量(2) int a=calloc(x,4); /第1个参数为变量,分配x个整数元素的空间

2、(3) char b=malloc(n1+n2); /n1和n2为变量,分配n1+n2个字节的空间(4) char c=malloc(sizeof(d); /根据另一个对象d的大小分配空间 5. 动态存储空间的释放 释放动态存储空间的free()函数的原型格式 void free(void* ptr); 功能:调用它时能够把指针变量ptr所指向的动态存储空间释放掉,即归还给操作系统。 free()函数原型声明也包含在stdlib.h系统头文件中 当动态存储空间保存的内容不再使用时,可调用该free()函数及时释放掉,若没有调用它,则一直到程序运行结束时该动态存储空间才被自动释放给操作系统。 对

3、于一般静态分配的变量,其占有的存储空间只能由C语言系统在运行时自动释放,其时机为所在的模块(复合语句)刚执行完毕。 下面看一个程序例子 #include /支持调用标准输入和输出操作的函数 #include /支持调用动态存储分配和释放函数 void main() int *a=calloc(10,sizeof(int); /动态分配得到a10数组, /为40字节的存储空间,同时静态分配得到a指针变量,4字节 int i; /静态分配得到i整数变量,4字节 for(i=0; i10; i+) ai=i*i; /给a数组中每个元素赋值 for(i=0; i10; i+) printf(%d ,a

4、i); /输出a中每个元素值 printf(n); /输出一个换行符 free(a); /a10数组的40个字节的动态存储空间被交还给操作系统 /此主函数执行结束时,自动把a和i各占有的4字节交还给操作系统 程序运行结果: 0 1 4 9 16 25 36 49 64 81六、使用指针和动态存储分配的程序举例例1:以指针方式访问数组元素的例子 #include #include void main() int a5=3,6,9,12,15; int *p=a; /把数组a的首地址赋给指针变量p int i; for(i=0;i=a; p-) printf(%5d,*p);/从后向前访问数组元素

5、 printf(n); /换行 输出结果: 3 6 9 12 15 15 12 9 6 3例2:进行简单变量动态存储分配的例子 #include #include void main() int x=23,y=40,z; int *p1=malloc(sizeof(int); /为*p1动态分配4字节存储空间 int *p2=malloc(sizeof(int); /为*p2动态分配4字节存储空间 *p1=x; *p2=y; /分别把x值23和y值40赋给动态变量*p1和*p2 printf(%d %dn,*p1,*p2); /输出*p1和*p2的值为23 40 z=*p1; *p1=*p2;

6、 *p2=z; /交换*p1和*p2所保存的值 printf(%d %dn,*p1,*p2); /输出*p1和*p2的值为40 23 free(p1); free(p2); /释放p1和p2各自所指向的动态存储空间 程序运行结果: 23 40 40 23例3:动态存储分配任意大小的一维数组的例子 #include #include void main() int n,i,sum=0; int *a; printf(从键盘给n输入一个正整数(1-10): ); while(1) scanf(%d,&n); /输入1-10之间的数到n中 if(n=1 & n=10) break; else pri

7、ntf(重输: ); a=calloc(n,sizeof(int); /动态分配an数组空间,n是变量 a0=0; a1=1; /给a数组的前2个元素赋值 for(i=2; in; i+) ai=ai-1+ai-2; /从元素a2起,每个元素值等于前2个元素值之和 /0+1=1, 1+1=2, 1+2=3, 2+3=5, for(i=0; in; i+) sum+=ai; /计算出n个元素之和 printf(%5d,ai); /依次输出每个元素值 printf(n sum=%5dn, sum); /输出sum的提示信息和值 free(a); 程序运行结果: 从键盘给n输入一个正整数(1-10)

8、: 12 重输: 8 0 1 1 2 3 5 8 13 sum= 33例4: 动态存储分配二维数组的例子。 #include #include void main() int i,j; int row,col; int* ab; /定义2阶整型指针变量ab,用它指向int*类型的数据 printf(输入一个二维表格数据的行数和列数: ); scanf(%d %d, &row, &col); /输入行、列数到row和col中 ab=calloc(row, sizeof(int*);/得到动态分配的一维指针数组abrow for(i=0; irow; i+) /依次使abi指向包含col个元素的一维数组 abi=calloc(col, sizeof(int); printf(输入%d行*%d列的二维表格数据: n, row, col); for(i=0; irow; i+) /输入数据进入二维数组abrowcol中 for(j=0; jcol; j+) scan

展开阅读全文
相关资源
相关搜索
资源标签

当前位置:首页 > 教育专区 > 大学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:文库网官方知乎号:文库网

经营许可证编号: 粤ICP备2021046453号世界地图

文库网官网©版权所有2025营业执照举报