一个小代码,哪错了啊?
大家帮我看下这个代码哪错了啊,在运行时看不到正确的结果!运行时的结果 第六行 也是错误的!
运行时还报错!
错误签名
AppName: 228-8.8.exe AppVer: 0.0.0.0 ModName: unknown
ModVer: 0.0.0.0 Offset: 00000006
下面是我的代码
望大家帮忙看看这两个问题!
程序代码:
//将数组A中的n个整数按相反顺序存放、、 //分别四种情况实现。 //(1)形参和实参都用数组名 //(2)实参用数组名,形参用指针变量。 //(3)实参和形参都用指针变量。 //(4)实参用指针,形参用数组名。 #include<stdio.h> #define N 10 void main() { void inv_1(int x[],int n); //申明形参为数组名函数 void inv_2(int *q,int n); //申明形参为指针变量函数 int a[N]={1,2,3,4,5,6,7,8,9,10},*p,i; p=a; //使指针P指向a[0] 与p=&a[0]等价 printf("原数组为:\n"); for(i=0;i<N;i++) printf("%d ",a[i]); //********如果用printf("%d ",p++);行吗********** printf("\n"); printf("调用实形参都用数组名的函数结果为:\n"); inv_1(a,N); for(i=0;i<N;i++) printf("%d ",a[i]);printf("\n"); printf("调用实参用数组名形参用指针变量的函数结果为:\n"); inv_2(a,N); for(i=0;i<N;i++) printf("%d ",a[i]);printf("\n"); printf("调用实形参都用指针变量的函数结果为:\n"); inv_2(p,N); for(p=a;p<a+N;p++) printf("%d ",*p);printf("\n"); printf("调用实参用指针变量形参用数组名的函数结果为:\n"); inv_1(p,N); for(p=a;p<a+N;p++) printf("%d ",*p);printf("\n"); } void inv_1(int x[],int n) { int i,j,temp; for(i=0,j=(n-1);i<=(n-1)/2;i++,j--) {temp=x[i];x[i]=x[j];x[j]=temp;} } void inv_2(int *q,int n) { int *i,*j,*mid,temp; i=q;j=q+(n-1);mid=q+(n-1)/2; for(;i<=mid;i++,j++) {temp=*i;*i=*j;*j=temp;} }