读书人

指针简单引用解决办法

发布时间: 2012-05-28 17:59:33 作者: rapoo

指针简单引用
#include <stdio.h>
#include <stdlib.h>
#define N 5
int main()
{
int i,temp;
int array[N];
int *p;
p=array;
for(i=0;i<N;i++)
{
scanf("%d",&array[i]);
}
for(i=0;i<=N/2;i=i+1)//完成交换
{
temp=array[i];
array[i]=array[N-i];
array[N-i]=temp;
}
for(p=array;p<array+N;p=p+1)//顺序输出
{
printf("%d",*p);
}
system("PAUSE");
return 0;
}
为什么 我输入1 2 3 4 5 输出的是 0 5 4 3 2

[解决办法]
这样就可以了

#include <stdio.h>
#include <stdlib.h>
#define N 5
int main()
{
int i,temp;
int array[N];
int *p;
p=array;
for(i=0;i<N;i++)
{
scanf("%d",&array[i]);
}
for(i=0;i<=N/2;i=i+1)//完成交换
{
temp=array[i];
array[i]=array[N-i-1];
array[N-i-1]=temp;
}
for(p=array;p<array+N;p=p+1)//顺序输出
{
printf("%d ",*p);
}
system("PAUSE");
return 0;
}
[解决办法]
++
发现下标从0开始的size-1结束这点很多犯错的,哎,为啥C语言的下标不从1开始呢,苦了这么多孩纸...

探讨
这样就可以了

#include <stdio.h>
#include <stdlib.h>
#define N 5
int main()
{
int i,temp;
int array[N];
int *p;
p=array;
for(i=0;i<N;i++)
{
scanf("%d",&array[i]);
}
fo……

读书人网 >C语言

热点推荐