标题:[求助]C语言传值调用与传址调用的判断
只看楼主
冰霜圣诞节
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2010-9-1
结帖率:100%
已结贴  问题点数:10 回复次数:7 
[求助]C语言传值调用与传址调用的判断
1,void f(int v,intw)
     {  int t;
   
        t=v;   v=w;   w=t;

      }
    main()
        {int   x=1,y=3,z=2;

         if(x>y)     f(x,y)
         else if(y>z)    f(y,z);

         else            f(x,z);
          printf ("%d,%d,%d,%d\n", x,y,z);
      }

2.void     swap1(int c[])

{  int t ;

      t=c[0];c[0]=c[1];c[1]=t;
 void   swap2(int c0,int c1)
{int t;
     t=c0;c0=t1;c1=t

    main()
   {int  a[2]={3,5},b[2]={3,5}

      swap1(a);  swap2(b[0],b[1]);
   
     printf("%d,%d,%d,%d,a[0],a[1],b[0],b[1]);


3. void fun (int *a,int i,int j)
   {int t;

      if(i<j)
     { t=a[i];a[i]=a[j];a[j]=t
     fun (a,++i ,--j);
        }
      }
     
      main()
      int a[]={1,2,3,4,5,6},i ;
      fun(a,0,5);
      for (i=0;i<6;i++)
              printf("%d",a[i]);
      }
以以上三道题为例,我搞不懂第一题与第二题中的传值调用与传址调用的判别方法,以及第三题中元素为i,j,为什么要进行传址调用?
谢谢各位大虾帮助!望给出详细解答,谢谢!!!!!!!!!!!!!
搜索更多相关主题的帖子: C语言 传值 传址 判断 
2010-09-02 18:17
BlueGuy
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:29
帖 子:4476
专家分:4055
注 册:2009-4-18
得分:2 
c 语言全部是传值调用, 所谓的传址调用实际上还是传值调用。
void fun (int *a)
{
     //这个 a 是改变不了的
}

我就是真命天子,顺我者生,逆我者死!
2010-09-02 18:25
erikyo
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:2
帖 子:270
专家分:1154
注 册:2010-6-10
得分:2 
通常意义上的传值,是无法改变主调函数中变量的值的
只有把该变量的地址传给子函数,然后对变量进行交换才能改变主调函数中的变量值
当然本质上还是传值,只是因为我们操作的是该地址里面的内容,而传进去的是该地址,
所以我们称这种方式是传地址。
2010-09-02 18:32
冰霜圣诞节
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2010-9-1
得分:0 
回复 3楼 erikyo
能否具体讲解一下求解的过程?谢谢!!
2010-09-02 20:33
erikyo
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:2
帖 子:270
专家分:1154
注 册:2010-6-10
得分:0 
回复 4楼 冰霜圣诞节
你想我解释什么呢,那条语句!
2010-09-02 20:57
encounter
Rank: 5Rank: 5
来 自:扬州
等 级:职业侠客
威 望:2
帖 子:150
专家分:359
注 册:2010-7-24
得分:2 
3. void fun (int *a,int i,int j)
也可以写成
void fun (int a[],int i,int j)


 fun(a,0,5);
a就代表a[]的首地址嘛
形参当然要写成地址 void fun (int *a,int i,int j)

实参,形参对应不就行了






ping   nbtstat   netstat   tracert    nat   at    ftp   telnet..................
2010-09-02 21:10
冰霜圣诞节
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2010-9-1
得分:0 
回复 5楼 erikyo
能否讲解一下以上三道题的求解过程,我对它是一知半解,不是很清楚。。谢谢
2010-09-02 22:12



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-317540-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.025516 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved