| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 论坛
 上传资源
上传编程相关的资源,源源不断赚取资源分,以备将来下载之需
杨唐卫
文件大小:101.46 KB
文件类型:zip
发布时间:2014-06-20 23:43:28
需资源分:1
下载次数:5
Tag:c语言
::资源简介::
调试下列程序,使之具有如下功能:任意输入2个数,调用两个函数分别求:   ⑴ 2个数的和,    ⑵ 2个数交换值。
代码:#include <stdio.h>         
void main( )
{ int a,b,c,*p=&c;
  void  sum(int  ,int ,int *);
  void swap(int * ,int * );
  scanf("%d,%d",&a,&b);
  sum(a,b,p);
  swap(&a,&b);
  printf("sum=%d\n",*p);
  printf("a=%d,b=%d\n",a,b);
}
void  sum(int a,int b,int *c)
{ *c=a+b; 
}
void swap(int *a,int *b)
{ int t;
  t=*a;
  *a=*b;
  *b=t;
}
解析:sum函数中形参a,b与实参a,b是值传递,只能由实参传递到形参,其为单向。实参p与形参c之间是地址传递。故为双向。但在swap函数中a,b同为地址。但交换a,b指针的指向不能起到交换值的作用。因为c语言中实参与形参之间的数据传递是单向的“值传递”方式。用指针变量做函数参数时也要遵守这一规则。不可能通过函数来改变实参指针变量的值,但可以改变实参指针变量所指向变量的是值。
::下载地址::

BCCN本地下载 
开通VIP
可免资源分下载所有资源
::下载本资源的人也下载了::
::作者其它资源::
 
>> 评论
 
热门Tag:
 
编程中国 版权所有,并保留所有权利。
Powered by BCCN 1.020, Processed in 0.010026 second(s)
Copyright©2010-2024, BCCN.NET, All Rights Reserved