- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
计算机C语言精要.ppt
一、数组名的使用 1、数组在计算机中占用一段连续存储区,该存储区第一个单元的地址称为数组的首地址,数组名代表数组的首地址,即第一个元素的地址。 2、数组名+下标 表示数组各元素的地址。 3、*(数组名+下标) 表示数组各元素的引用。 一、数组名的使用 设数组定义如下: 举例 int i,a[6]={0,3,6,9,12,15}; ①数组名a表示其首地址, 即:a==a[0] ②a+i表示数组各元素的地址, 即:a+i==a[i] ③*(a+i)表示数组各元素, 即:*(a+i)==a[i] 一、数组名的使用 /*以下语句的功能是为数组各元素输入数值,划线处有两种填法,请分别写出*/ 思考1 int i, a[6]; for(i=0;i6;i++) scanf(“%d”, _______ ); 答:a[i] 或 a+i 一、数组名的使用 /*以下语句的功能是为输出数组各元素的值,划线处有两种填法,请分别写出*/ 思考2 int i, a[6]={0,3,6,9,12,15}; for(i=0;i6;i++) printf(“%4d”, _______ ); 答:a[i] 或 *(a+i) 二、用指针变量操作数组 设有如下定义: int *p,a[6]={0,3,6,9,12,15}; 请理解如下语句的含义: p=a; p=a+2; p++; p--; p=p+3; P指向数组首元素 P指向a[2] P后移一个 P前移一个 P后移3个 15 12 9 6 3 0 a p p p p p 二、用指针变量操作数组 思考 main( ) { int *p, a[6]={0,3,6,9,12,15}; p=a+4;printf(“%d\n”,*p); p=p-2;printf(“%d\n”,*p); for(p=a;pa+6;p++) printf(“%4d”, *p ); } 分析执行结果? 三、数组名作实参 数组名作实参,对应形参必须是同类型的指针变量,传送的是数组的首地址。 例如:以下程序通过调用printarray( )函数输出数组a各元素的值。 main( ) {int a[6]={0,3,6,9,12,15}; printarray( a , 6 ); } 数组名作参数 三、数组名作实参 printarray( int *p , int n ) {int i; for(i=0;in;i++) printf(“%4d”,*(p+i)); } 对应形参为指针变量 15 12 9 6 3 0 a p=a 四、程序实例 该程序由sortarray( ),printarray( )和主函数共3个函数构成,其中: sortarray( ):数组排序 printarray( ):数组输出 在主函数中分别调用这两个函数完成任务。 详细源程序如下: 四、程序实例 void sortarray(int *p,int n) {int i,j,t; for(i=n-1;i=1;i--) for(j=0;ji;j++) if(p[j]p[j+1]) {t=p[j];p[j]=p[j+1];p[j+1]=t;} } 该函数实现对p所指数组 的n个元素升序排列 四、程序实例 void printarray(int *p,int n) {int i; for(i=0;in;i++) printf(“%4d”,p[i]); } 该函数实现将p所指数组 的n个元素输出 四、程序实例 main( ) {int a[6]={9,15,6,12,3,0}; sortarray(a,6); /*数组排序*/ printarray(a,6); /*数组输出*/ getch(); } 三、二维数组的初始化 2、当某行花括号对内的初值个数少于该行元素个数时,系统将自动给该行后面的元素补初值0。如: int a[2][3]={{1,2},{5} }; 则各元素的值为: a[0][0]=1 a[0][1]=2 a[0][2]=0 a[1][0]=5 a[1][1]=0 a[1][2]=0 三、二维数组的初始化 3、所赋初值行数少于数组行数,系统自动给后面各行的元素补初值0。如: int a[3][3]={{1,2},{5}}; 则各元素的值为: a[0][0]=1 a[0][1]=2 a[0][2]=0 a[1][0]=5 a[1][1]=0 a[1][2]=0 a[2][0]=0 a[2][1]=0
文档评论(0)