各位帮忙看看,指针的问题
#include<stdio.h>int main()
{
void scan(int *p,int n);
void sort(int *p,int n);
void print(int *p,int n);
int a;
scan(a,10);
sort(a,10);
print(a,10);
return 0;
}
void scan(int *p,int n)
{
int i;
for(i=0;i<n;i++)
{
scanf("%d",p);
p++;
}
printf("tiaoshi\n");
}
void sort(int *p,int n)
{
int i,j,min,max;
int *p1=p;
min=*p;
max=*p;
for(i=1,j=1;i<n;i++,j++)
{
if(min>*(p+i))min=*(p+i);
if(max<*(p+j))max=*(p+j);
}
p1=p+j;p+j=p;p=p1;
p1=p+i;p+i=p;p=p1;//此处为何会报错:c(18) : error C2106: '=' : left operand must be l-value,
}
void print(int *p,int n)
{
int i;
for(i=0;i<n;i++)
printf("%d\t",p);
} 左值不应该存在表达式,顺便说,你的程序错误有点多……
页:
[1]