一个有关指针的问题
// Practice.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include "stdio.h"
void printTrigle(int a[],int k);
void inv(int *p,int n);
const int rows=2;
int _tmain(int argc, _TCHAR* argv[])
{
int j;
int bb[5];
printTrigle(bb,5);
scanf("%d",&j);
}
void printTrigle(int a[],int k)
{
int i,*p;
p=a;
for(i=0;i<k;i++)
{
*(p+i)=i;
}
for(i=0;i<k;i++)
{
printf("a[%d]=%d , 地址: %d\n",i,*(p+i),p+i);
}
printf("\n");
p=a;
inv(p,k);
for(i=0;i<k;i++)
{
printf("a[%d]=%d , 地址: %d\n",i,a[i],p+i);
}
}
void inv(int *p,int n)
{
int temp1,i;
for(i=0;i<n;i++)
{
temp1=*(p+i);
*(p+i)=*(p+(n-i-1));
*(p+(n-i-1))=temp1;
}
}
请问,为什么不能实现数组的倒序排列阿
[解决办法]
inv函数中
- C/C++ code
for(i=0;i <n;i++) 改成for(i=0;i <n/2;i++)