网站大量收购独家精品文档,联系QQ:2885784924

[教育]C语言教程.ppt

  1. 1、本文档共124页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[教育]C语言教程

使用指针变量的危险1: 使用指针变量进行间接访问之前必须赋值,使其指向某一变量;否则将导致对系统或用户程序的破坏。 例:p226 用指针变量来操作数组元素 #includestdio.h void main() { int a[10]; int i; for(i=0;i5;i++) scanf(%d,a[i]); printf(\n); for(i=0;i5;i++) printf(%5d,a[i]); } #includestdio.h void main() { int a[10]; int i; for(i=0;i5;i++) scanf(%d,(a+i)); printf(\n); for(i=0;i5;i++) printf(%5d,*(a+i)); } #includestdio.h void main() { int a[10],*p; for(p=a;pa+5;p++) scanf(%d,p); printf(\n); for(p=a;pa+5;p++) printf(%5d,*p); } 2. 指针变量作为函数形参 数组名作实参 2. 实参和形参均为数组名 【15】编写一个函数avg,函数的功能是求数组中n个元素的平均值。在主函数中输入20个数据,调用函数输出平均值。 double avg(double *a,int n) /*形参指针变量*/ { double sum=0,*p; for(p=a;pa+n;p++) sum=sum+*p; return(sum/n); } double avg(double *a,int n) /*形参指针变量*/ { int i; double sum=0; for(i=0;in;i++) sum=sum+a[i]; return(sum/n); } double avg(double *a,int n) /*形参指针变量*/ { double sum=0,*p; for(p=a;pa+n;p++) sum=sum+*p; return(sum/n); } 以下两个函数等价 double avg(double a[],int n) /*形参指针变量*/ { int i; double sum=0; for(i=0;in;i++) sum=sum+a[i]; return(sum/n); } double avg(double *a,int n) /*形参指针变量*/ { int i; double sum=0; for(i=0;in;i++) sum=sum+a[i]; return(sum/n); } double avg(double a[],int n) /*形参指针变量*/ { int i; double sum=0; for(i=0;in;i++) sum=sum+a[i]; return(sum/n); } double avg(double a[],int n) /*形参指针变量*/ { double sum=0,*p; for(p=a;pa+n;p++) sum=sum+*p; return(sum/n); } 在函数调用时,系统分配一个存储单元给形参指针变量a,并将实参的值赋给形参。在函数执行时,利用下标运算符a[i](等价于*(A+i))对实参数组对应的存储单元score[i]进行间接访问. [16]编写一个函数void strcopy(char *s,char *d),函数的功能是将d所指向的字符串复制到s所指向的字符数组中(不能使用strcpy函数)。在主函数中输入一个字符串,调用函数复制到另一个字符串中且打印出来。(输入:This is c program) #include stdio.h void strcopy(char *s,char *d) { while (*d!=‘\0’) {*s = *d ; s++,d++ ; } *s = \0 ; } int main() { char s1[100],s2[100]; printf(输入一个字符串\n) ; gets(s2); strcopy(s1,s2); printf(复制结果为:%s\n , s1); return 0;} 提示:书48页内容 实参是数组的首地址 形参的类型可以是如下形式: 1.形参是数组 2.形参是指针变量 实质都是指针变量 1.形参用数组名 f(int

文档评论(0)

qiwqpu54 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档