指针地址的问题
问题在代码红色区域!!!#include<stdio.h>
#include<string.h>
int main()
{
void input (int *num);
void value (int *num);
void output (int *num);
int number[10];
input (number);
value (number);
output (number);
return 0;
}
void input (int *num)
{
int i;
for (i=0; i < 10; i++)
scanf("%d", &num[i]);
}
void value (int *num)
{
int *max, *min, temp, *p;
max = min = p = num; 让p存放num指针的地址
for (p; p < num + 10; p++)
if (*min > *p)
min = p;
else if (*max < *p)
max = p;
if (max == num)
max=min;
temp = num[0]; 进行交换的时候用p[0]就会存在问题。用num[0]就正确。开头不是把num指针的首地址赋给p指针了吗?用p[0]进行交换,难道只是改变的p指针的地址的值,num指针的地址没变化
num[0] = *min;
*min = temp;
temp = num[9];
num[9] = *max;
*max = temp;
}
void output (int *num)
{
int *p;
for (p = num; p< num+10; p++)
printf("%d ",*p);
}