黑马程序员技术交流社区

标题: 函数调用的问题,形参和实参 [打印本页]

作者: sdzwb89    时间: 2015-5-19 10:04
标题: 函数调用的问题,形参和实参
本帖最后由 sdzwb89 于 2015-5-20 13:05 编辑

  1. #include <stdio.h>
  2. int test(char a)
  3. {
  4.   a=10;
  5. return 0;
  6. }
  7. int test1(char a)
  8. {
  9.     a = 10;
  10.    
  11.     return a;
  12. }
  13. int mian()
  14. {
  15.         char b =5 ;
  16.         test(b);
  17.         printf("b的值是%d \n",b);      // b的值是5
  18.         char c=test1(b);
  19.         printf("c的值是%d\n",c)                // c的值是10
  20.         c=test(b);
  21.         printf("c的值是%d\n",c)                // c的值是0
  22.         return 0;
  23. }
复制代码


这样应该是对的吧?
作者: 飞翔的猪    时间: 2015-5-19 10:07
结果肯定是5啊,运行一下不什么都有了么
作者: 猴子啊猴子    时间: 2015-5-19 10:31
结果是5.为什么不自己先运行一下看看结果呢
作者: hehelaicaicai    时间: 2015-5-19 11:02
没看懂为什么是5呢?我怎么也觉得是对的
作者: sdzwb89    时间: 2015-5-19 11:43
hehelaicaicai 发表于 2015-5-19 11:02
没看懂为什么是5呢?我怎么也觉得是对的

当使用基本数据类型(char、int、float等)作为实参时,实参和形参之间只是值传递,修改形参的值并不影响到实参
作者: mony    时间: 2015-5-19 12:15
楼主的答案应该是对的吧...二楼和三楼是在说什么,没看懂
作者: hehelaicaicai    时间: 2015-5-19 13:44
sdzwb89 发表于 2015-5-19 11:43
当使用基本数据类型(char、int、float等)作为实参时,实参和形参之间只是值传递,修改形参的值并不影响 ...

还是不懂,你这么说顶多是b=5,后面那两个c的值有问题吗?一个是10  一个是0
作者: 李竞还活着    时间: 2015-6-5 06:52
我只能说你最起码有一个低级错误,那就是main函数名写错了
作者: fixer    时间: 2015-6-5 07:22
main函数写错了,其它的我再看看
作者: fixer    时间: 2015-6-5 07:24
return 0的话你确定程序不会结束么?




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