A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© sen 中级黑马   /  2014-4-20 14:17  /  1871 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 sen 于 2014-5-20 12:01 编辑


评分

参与人数 1技术分 +1 收起 理由
jing迪 + 1

查看全部评分

5 个回复

倒序浏览
你的changes没有定义啊,另外change2中的参数是整形,你传的时候变成数组了,也会出错的

评分

参与人数 1技术分 +1 收起 理由
jing迪 + 1

查看全部评分

回复 使用道具 举报
  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]的值了。
回复 使用道具 举报
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, 下载次数: 38)

QQ图片20140421205100.jpg
回复 使用道具 举报
马凯文 发表于 2014-4-20 14:32
你这上面函数是change2,调用的时候变成了changes2 ,报的是changes2没有声明
另外,你这change2函数没有返 ...

原来是手误打错了 非常感谢
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马