标题:新手,帮忙看下我的问题!~
只看楼主
莣忧
该用户已被删除
 问题点数:0 回复次数:4 
新手,帮忙看下我的问题!~
提示: 作者被禁止或删除 内容自动屏蔽
搜索更多相关主题的帖子: void include change number 
2010-05-17 12:11
九品绅士
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:59
专家分:199
注 册:2010-3-26
得分:0 
void  change(int number)
{
number+=2 ;
}
返回值为void,也就是说number+=2 ; 作用域只在该函数内部,对于主函数里面的变量是没有影响的~~
对于数组,数组名代表着数组首地址,等价于指针,故数组改变~~
建议楼主改改:int  change(int number)  ~~  主函数里面:num=change(num);
2010-05-17 12:21
我菜119
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:938
专家分:1756
注 册:2009-10-17
得分:0 
形参的值是不可能改变实参的值!因为函数在调用时建立的是“副本”。之所以数组会加是因为函数changeArray(a)操作的是内存(即地址)。

愿用余生致力编程
2010-05-17 12:21
myhnuhai
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:3
帖 子:425
专家分:1725
注 册:2010-3-17
得分:0 
void时空类型,没有返回值,数组加了的原因是,数组时按地址传递的,也就是和所改变arr[]数组的值也会改变a[]的值,而变量是按值传递的!!
#include<stdio.h>
void  main()
{    void changeArray(int arr[2]);
    void change(int x);
     int a[2]={7,8};
     int num=7;
     change(num);
     changeArray(a);
}
void  change(int number)
{
number+=2 ;
 printf("num=%d\n",number);
}
void changeArray(int arr[])
{
  arr[0]+=2;
printf("a[0]=%d\n",arr[0]);
}

不要让肮脏的记忆,迷失了原本纯洁的心灵!
2010-05-17 13:01
炫舞小子
该用户已被删除
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽
2010-05-17 14:29



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-306992-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.080892 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved