指针问题求解
#include <stdio.h>#include<string.h>
int *max(int x[],int y[],int *p,int *c)
{
int i;
int *m;
m=&x[0];
for(i=0;i<10;i++)
{
if(*m<x[i])
{
*m=x[i];
*p=1;
*c=i+1;
}
}
for(i=0;i<9;i++)
{
if(*m<y[i])
{
*m=y[i];
*p=2;
*c=i+1;
}
}
return m;
}
int main()
{
int *m,*n;
int l=4,k=3;
m=&l,n=&k;
int a[10]={1,2,3,4,5,6,7,8,9,100};
int b[10]={20,12,14,13,15,16,17,18,19,10};
max(a,b,m,n);
printf("两个数组中最大的数是:%d\n是第%d个数组中的第%d个数",*max(a,b,m,n),*m,*n);
system("PAUSE");
return 0;
}
如果我把 倒数的那两行即 int=4,k=3;m=&l,n=&k;直接去掉,那么将会运行崩溃,好像很多时候必须给定义的指针一个指向的量 不然将会出错,这是不是指针的一个应用很重要的一点求解,各位谢谢啦……