黑马程序员技术交流社区

标题: 代码中哪里错了 终端报的是什么错误? [打印本页]

作者: sen    时间: 2014-4-20 14:17
标题: 代码中哪里错了 终端报的是什么错误?
本帖最后由 sen 于 2014-5-20 12:01 编辑



作者: 魅影穿眸    时间: 2014-4-21 10:25
你的changes没有定义啊,另外change2中的参数是整形,你传的时候变成数组了,也会出错的
作者: 1722413885    时间: 2014-4-21 15:44
  1. #include <stdio.h>

  2. void change(int array[])
  3. {
  4.    array[0]=100;   
  5. }

  6. void change2(int* n)
  7. {
  8.    *n=100;
  9. }
  10. int main()
  11. {
  12.   int ages[6]={10,11,15,16,99};
  13. change2(&ages[0]);
  14. printf("%d\n",ages[0]);
  15. return 0;

  16. }
复制代码

这样就能改变ages[0]的值了。
作者: 葬花桥    时间: 2014-4-21 20:52
main 函数中调用出错,changes2没有声明,你声明的是change2,还有,楼上说的有一点不对,参数传递没有问题,ages[0]可以传递给函数的整型形参 n,因为为 ages[0]这里表示的是10,但是要修改ages[0]的值 函数应该返回整型或者把整个数组传递过去,可以这样写
  1. #include <stdio.h>
  2. void change2(int* n)
  3. {
  4.         n[0] = 100;
  5.         return;
  6. }
  7. int main()
  8. {
  9.          int ages[6] = {10,11,15,18,16,99};
  10.          change2(ages);
  11.          printf("%d",ages[0]);
  12.          return 0;
  13. }
  14. 或者
复制代码
  1. #include <stdio.h>
  2. int change2(int n)
  3. {
  4.         return n = 100;
  5. }
  6. int main()
  7. {
  8.          int ages[6] = {10,11,15,18,16,99};
  9.          ages[0] = change2(ages[0]);
  10.          printf("%d",ages[0]);
  11.          return 0;
  12. }
复制代码

QQ图片20140421205100.jpg (113.99 KB, 下载次数: 30)

QQ图片20140421205100.jpg

作者: sen    时间: 2014-5-20 12:01
马凯文 发表于 2014-4-20 14:32
你这上面函数是change2,调用的时候变成了changes2 ,报的是changes2没有声明
另外,你这change2函数没有返 ...

原来是手误打错了 非常感谢




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