- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* 行指针,指向数组 列指针,指向数据元素 * * 是一个数组,每个元素是指针类型 指针数组实际上是一次定义了一组指针,这些指针顺序存放,并相互关联,每一个指针又可以和一个一维数组相关联。因此可以用指针数组处理二维数组。 * *,++右结合 * 与指针数组一致 * *的优先级远远高于+= 例7-12 编写函数,计算Fibonacci数列前20项,并在主函数中输出 P136 #includestdio.h { int *px,x[20] = {1,1},i; px=x;void GenFib(int *m); GenFib(px); for(i = 0;i 20;i++) printf(%d ,x[i]); } void GenFib(int *m) { int i; for(i=2;i20;i++) *(m+i)= *(m+i-1)+*(m+i-2); } 补充:编程实现如下问题 在主函数中定义含有30个元素的一维数组a,各元素值由如下算式生成:a[i]=12*sin(i*2.3+5)(i=0…29),编写函数求该组数中的最大值和最小值,并在主函数中输出所求出的最大和最小值. main() { int i;float a[30],max,min;for(i=0;i30;i++) a[i]=12*sin(i*2.3+5);maxmin(a,max,min);printf(“max=%f\tmin=%f”,max,min); } void maxmin(float a[30],float *max,float *min) { int i; float ma=a[0],mi=a[0]; for(i=0;i30;i++) { if(a[i]ma) ma=a[i]; if(a[i]mi) mi=a[i]; } *max=ma;*min=mi; } 例 用函数调用实现字符串复制 (1)用字符数组作参数 (2)用字符指针变量作参数 a I a m a t e a c e h \0 r . from a b y u a r a s u t n d e to b o e t . \0 I a a e c e h \0 r . t . \0 m t a void copy_string(char from[],char to[]) { int i=0;while(from[i]!=\0){ to[i]=from[i]; i++;}to[i]=\0; } main() { char a[]=I am a teacher.; char b[]=You are a student.; printf(string_a=%s\n string_b=%s\n,a,b); copy_string(a,b); printf(\nstring_a=%s\nstring_b=%s\n,a,b); } void copy_string(char *from,char *to) { for(;*from!=\0;from++,to++)*to=*from; *to=\0; } main() { char *a=I am a teacher.; char *b=You are a student.; printf(string_a=%s\nstring_b=%s\n,a,b); copy_string(a,b); printf(\nstring_a=%s\nstring_b=%s\n,a,b); } 字符指针作函数参数 实参与形参的各种形式如下: 地址作为函数的参数 形参 实参 数组 指针常量:数组名或简单变量地址 数组 指针变量 指针变量 指针常量:数组名或简单变量地址 指针变量 指针变量 本质上都是地址! P136 表7-1 *7.4.2 函数的指针和指向函数的指针变量 1.函数指针的概念 C语言中函数名表示函数的首地址,即函数执行时的入口地址。 例如:char func(char x){……} 当用函数名func( ) 调用该函数时,程序的控制就传给该函数。把函数名(即函数的入口地址)赋给一个指针变量时,该指针变量中的内容就是该函数的入口地址.就可以用指针来操纵函数,这种指针为函数的指针。函数指针的作用就是调用函数。 ( 1 ) 函数指针的定义格式:数据类型 (*函数指针变量名)(); 例如:int (*funp)( ); 其中:数据类型表示指针所指向的函数的数据类型,即函数返回值的数据类型。 (2)函数指针的引用格式: (*函数指针名)(实参表); 注意:函数指针引用前要将所指向函数的地址(即函数名)赋给函数指针。(即:
文档评论(0)