
第一个错误: a定义为 a[N] 由于c语言是从0开始编号的 所以不存在 a[N]这个元素 使用a[n] 就会造成数组越界 最后输出一个乱码 第二个错误 最后一个语句有误: void antitone(a[ ],N); 这个是函数的原型,是定义,不能作为语句去使用 调用函数的时候 不能写返回值 对于antitone()这个函数 传递的参数是 指针a和 一个整型N 所以 调用函数的正确写法应该是 antitone(a,N); a[]这样的写法在语句中 没有意义 只有在定义形参的时候才这么写 a单独使用代表的是指针 值为a[0]的地址 指向数组的第一个元素
数组反向,只要将第一位和最后一位交换,第二位和倒数第二位交换,第三位。。。。。。
这样就可以实现数组内容反向存储。
注意:我代码中交换用^=只是小技巧,效果等同于使用变量交换,如果是字符数组不要用这个方法交换。
#include <stdioh>#define N 10
void antitone(int a[],int n);
int main()
{
int n=N,a[N],p=a;
while(n--)
scanf("%d",p++);
antitone(a,N);
return 0;
}
void antitone(int a[],int n)
{
int pb=a,pe=&a[n-1];
while(pb<pe)//将数组内容反向存储
{
pb^=pe,pe^=pb,pb^=pe;
pb++;
pe--;
}
pb=a;//打印数组
printf("反向后:");
while(n--)
printf("%d ",pb++);
printf("\n");
}
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)