分类：电脑/网络-软件
问题：C语言指针函数中的问题，请教各位#include"stdio.h 
#include"std.h" int *max(int *q) { int i,*ptr; ptr=q; for(i=0;i<=9;i++,q++) if(*q>*ptr) ptr=q; return(ptr); } main() { int i,a[10],*p; for(i=0;i<=9;i++) { printf("a[%d]= ",i); scanf("%d",&a[i]); } p=max(a); printf("max=%d",*p); } #include"std.h" int *max(int *q) { int i,*ptr; ptr=q; for(i=0;i<=9;i++,q++) if(*q>*ptr) ptr=q; return(ptr); } main() { int i,a[10],*p; for(i=0;i<=9;i++) { printf("a[%d]= ",i); scanf("%d",&a[i]); } p=max(a); printf("max=%d",*p); } 其中的int *q 是把a的起始地址传给q, q，ptr也是指针变量然后 ptr=q这里不懂。。 if(*q>*ptr) ptr=q;也是不理解，请高手帮忙。。
回答：ptr,q是同基类型的指针。
如果q指向a,那么，ptr=q使得ptr也指向了a.
*q>*ptr是比较q,ptr所指向的变量里的数据。
这样说可以不太明白。因为你需要去看一下指针。