这个程序做什么用的? (数组+函数)

时间:2014-05-21 03:39:17

标签: c arrays function

我尝试多次运行此代码,每次输出都相同,我没有得到,这样的代码有什么用?

#include<stdio.h>
#include<conio.h>
 void increment(int,int, int);
int main()
{
  int a[20],i;
  clrscr();
  printf("Enter array elements");
  for(i=0;i<20;i++)
    scanf("%d", &a[i]);

  increment(a[0],a[5],a[2]);
  printf("After passing array:\n");

  for(i=0;i<20;i++)
    printf("%d\t", a[i]);

  getch();
  return 0;
}

void increment(int x, int y, int z)
{
  //int i;
  x++;
  y++;
  z++;
  //for(i=0;i<size;i++)
  // x[i]++;
}

1 个答案:

答案 0 :(得分:1)

为了有用,需要将要修改的值的地址传递给increment(),而不是值本身:


改变这个:

void increment(int x, int y, int z)
    {
    //int i;
    x++;
    y++;
    z++;
    //   for(i=0;i<size;i++)
    //   x[i]++;
    }

对此:

void increment(int *x, int *y, int *z)
    {
    //int i;
    (*x)++;  
    (*y)++;
    (*z)++;
    //   for(i=0;i<size;i++)
    //   x[i]++;
    }

然后改变这个:

increment(a[0],a[5],a[2]);

到此:

increment(&a[0],&a[5],&a[2]);