函数与指针求解
都说指针很难,看到这一章的时候都很细心,但是书后面的习题和前面的例子真没啥联系,搞得每道题都要到这里来问。。
#include<stdio.h>int max(int *,int n,int *);int main(void){ int ar[10]; int i,m=0,index; printf("Please enter 10 numbers:\n"); for(i=0;i<10;i++) scanf("%d",&ar[i]); m=max(ar,10,&index);//关于&index,声明的时候是指针*p,为什么传输进去是地址? printf("The max is %d.index=%d.\n",m,index);//这里的index函数里根本没返回呀。。为什么数值正确? return 0;}int max(int ar[],int n,int *p)//这里还是*p和&index;*p是一个数值,&index是地址呀。怎么互相连通呢?{ int i; int m=ar[0]; for(i=0;i<n;i++) { if(m<ar[i]) { m=ar[i]; *p=i; } } return m;}#include<stdio.h>int max(int *,int n,int *);int main(void){ int ar[10]; int i,m=0,index; printf("Please enter 10 numbers:\n"); for(i=0;i<10;i++) scanf("%d",&ar[i]); m=max(ar,10,&index);//关于&index,声明的时候是指针*p,为什么传输进去是地址?//答:楼主还是好好去理解指针的概念吧。。。指针变量里存放的就是地址呀。。 printf("The max is %d.index=%d.\n",m,index);//这里的index函数里根本没返回呀。。为什么数值正确?答:通过修改指针指向的变量,从而间接修改变量的值。 return 0;}int max(int ar[],int n,int *p)//这里还是*p和&index;*p是一个数值,//&index是地址呀。怎么互相连通呢?//答:int *p ,表明形参类型是指向int型的指针,而并不是你说的“*p是一个数值”。{ int i; int m=ar[0]; for(i=0;i<n;i++) { if(m<ar[i]) { m=ar[i]; *p=i; } } return m;}