jellye 发表于 2017-8-23 23:24:34

数组元素作为函数实参的例题,我不太理解为什么choose函数括号中为什么不可以用a[i]

#include<stdio.h>
void main()
{
        int a={1,2,3,4,-1,-2,-3,-4,2,3},b,i;
        int choose(int a);
    for(i=0;i<10;i++)
        {
      b=choose(a);
                printf(" %d ",b);
        }
      
}
   int choose(int a)
       {
               if(a>0)
               {
               return a;
               }
               else
               {
               return 0;
               }
       }
现在的错误是五个,额我将函数choose中a的位置换成x,就可以正常运行,我不太理解为什么,希望老师们能赐教,谢谢

jellye 发表于 2017-8-23 23:25:38

   题目:判别一个整数数组a={1, 2, 3, 4, -1, -2, -3, -4, 2, 3}中各元素的值,若大于0 则输出该值,若小于等于0则输出0值。

ba21 发表于 2017-8-23 23:49:26

本帖最后由 ba21 于 2017-8-23 23:51 编辑



//代码1传入每个值

#include<stdio.h>

void main()
{
      int a={1,2,3,4,-1,-2,-3,-4,2,3};
                int b,i;
      int choose(int a); //形参为值

               
   
                for(i=0;i<10;i++)
      {
                        b=choose(a); //实参传入 值
            printf(" %d ",b);
      }
                printf("\n");
      
}
int choose(int a)//形参为值
{
         if(a>0)
         {
                        return a;
         }
         else
         {
                        return 0;
         }
}


//代码2传地址

#include<stdio.h>

void main()
{
      int a={1,2,3,4,-1,-2,-3,-4,2,3};
                int b,i;
      int choose(int a[], int index);//形参 数组地址, index数组下标

               
   
                for(i=0;i<10;i++)
      {
                        b=choose(a, i);//实参 传入数组地址,i数组下标
            printf(" %d ",b);
      }
                printf("\n");
      
}
int choose(int a[], int index)//形参 数组地址, index数组下标
{
         if(a>0)
         {
                        return a;
         }
         else
         {
                        return 0;
         }
}
页: [1]
查看完整版本: 数组元素作为函数实参的例题,我不太理解为什么choose函数括号中为什么不可以用a[i]