指针的调用

来源:5-13 内部函数与外部函数

qq_羲和_3

2017-03-18 09:35

#include <stdio.h>
void cs(int *a);
int main()
{
 int a[4], b, *c;
 c = a;
 printf("请输入这10个数\n");
 for (b = 0; b<4; b++)
  scanf("%d", &a[b]);
 cs(c);
 for (b = 0; b<4; b++)
  printf("%d ", a[b]);
}
void cs(int *a)
{
 int b, c, d, e[4];

 for (b = 0; b<4; b++)
 {
  for (a = e; a<e + 4; a++)
  {
   if (*a<*(++a))
   {
    d = *a;
    *a = *(++a);
    *(++a) = d;
   }
  }
 }
}

为什么数没有改变


写回答 关注

1回答

  • flowlsj
    2017-03-18 11:27:29
    已采纳

    内层循环初始 a = e,a已经不再指向传入时的位置,自然不会对原数组起到修改的作用。此外你在循环里额外使用了三次自增操作,应该会导致数组越界。

C语言入门

C语言入门视频教程,带你进入编程世界的必修课-C语言

926249 学习 · 20798 问题

查看课程

相似问题

指针的问题

回答 1

指针的教学

回答 2

c指针

回答 1

指针呢??

回答 1