黑马程序员技术交流社区

标题: 大家来找茬之实参形参 [打印本页]

作者: 54hxd52lj    时间: 2014-6-5 19:59
标题: 大家来找茬之实参形参
本帖最后由 54hxd52lj 于 2014-6-6 08:50 编辑
  1. void main( )
  2. {
  3.    void swap(int,int);
  4.    int a,b;
  5.    a=3;b=4;
  6.    swap(a,b);
  7.    printf("%d,%d\n",a,b);
  8. }
  9. void swap(int x,int y)
  10. {
  11.    int t;
  12.    t=x;x=y;y=t;
  13. }
复制代码

作者: 张家伟2014    时间: 2014-6-5 21:50
本帖最后由 张家伟2014 于 2014-6-7 20:46 编辑

一、01行错误:main函数返回值为int,修正如下:
  1. int main()
复制代码
二、07行错误:printf函数未声明,printf函数声明在stdio.h中,修正如下:在01行前添加下列代码
  1. #include <stdio.h>
复制代码
三、语义错误:函数本意应该是交换变量a和b的值,但实际上只交换了变量x和y的值。因为基本数据类型作为函数实参时,只是将值传递给形参,所以形参的改变并不影响实参,修正如下:
  1. #include <stdio.h>

  2. int main()
  3. {
  4.     void swap(int*, int*);
  5.     int a,b;
  6.     a = 3;
  7.     b = 4;
  8.     swap(&a, &b);
  9.     printf("a = %d, b = %d\n",a,b);
  10. }
  11. void swap(int *x, int *y)
  12. {
  13.     int t;
  14.     t = *x;
  15.     *x = *y;
  16.     *y = t;
  17. }
复制代码


作者: bubuatt    时间: 2014-6-5 22:07
感谢分享~
作者: 54hxd52lj    时间: 2014-6-5 22:21
张家伟2014 发表于 2014-6-5 21:50
01行错误:main函数返回值修正:01行改写成 int main()
07行错误:printf函数未声明修正:01行前添加#incl ...

真是太感谢了,找茬达人。:handshake




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2