| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 827 人关注过本帖
标题:值传递的问题?
只看楼主 加入收藏
chihuyu
Rank: 2
等 级:论坛游民
帖 子:70
专家分:13
注 册:2011-12-26
结帖率:100%
收藏
已结贴  问题点数:4 回复次数:13 
值传递的问题?
运行后的答案是4,2,8,9
a=4,b=2,p=9都能够理解。
但c=8就不理解了,不是 只能由实际参数向形式参数传递值吗?我觉得c=1;


#include"stdio.h"

int c,a=4;

int fuck(int a, int b)
{
    c=a*b;
    a=b-1;
    b++;
    return(a+b+1);
}


void main()
{
    int b=2,p=0;
    c=1;
    p=fuck(b,a);
    printf("%d,%d,%d,%d\n",a,b,c,p);
}
搜索更多相关主题的帖子: void 能够 include return fuck 
2012-03-04 22:09
真的很菜
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:94
专家分:151
注 册:2012-2-18
收藏
得分:1 
因为你那int c   是整体变量  不是局部变量  你把它改改看看  自己体会体会
2012-03-04 22:25
sunlang1234
Rank: 2
等 级:论坛游民
帖 子:47
专家分:77
注 册:2012-2-24
收藏
得分:1 
这里的C是全局变量,所以fuck函数里的C和main函数的C是同一个,在被调函数中C=a*b=4*2=8,和main函数的一致,所以打印出来是8.
2012-03-04 22:37
sunlang1234
Rank: 2
等 级:论坛游民
帖 子:47
专家分:77
注 册:2012-2-24
收藏
得分:0 
这里的C是全局变量,所以fuck函数里的C和main函数的C是同一个,在被调函数中C=a*b=4*2=8,和main函数的一致,所以打印出来是8.
2012-03-04 22:38
chihuyu
Rank: 2
等 级:论坛游民
帖 子:70
专家分:13
注 册:2011-12-26
收藏
得分:0 
a也是全局变量,那为什么a不变啊?
2012-03-04 22:39
sunlang1234
Rank: 2
等 级:论坛游民
帖 子:47
专家分:77
注 册:2012-2-24
收藏
得分:0 
当局部变量和全局变量名相同时,局部变量将屏蔽全局变量,所以fuck函数中的a不是main函数中的a。
2012-03-04 22:42
ljk694145447
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:44
专家分:114
注 册:2011-11-29
收藏
得分:1 
C是整体变量,它不是形参;
2012-03-05 10:30
icysky
Rank: 5Rank: 5
来 自:心灵世界
等 级:职业侠客
威 望:1
帖 子:172
专家分:399
注 册:2011-5-17
收藏
得分:1 
你可以这样看
程序代码:
int fuck(int a, int b)
{
    int c;
    c=a*b;
    a=b-1;
    b++;
    return(a+b+1);
}
现在C 就变了   函数里面的c已经屏蔽了全局变量c

不管怎么走、总有一个终点...
2012-03-05 11:00
玉面狂龙
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:82
专家分:156
注 册:2012-2-23
收藏
得分:1 
晕,b=2,不理解
2012-03-05 12:56
玉面狂龙
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:82
专家分:156
注 册:2012-2-23
收藏
得分:0 
请教
2012-03-05 12:56
快速回复:值传递的问题?
数据加载中...
 
   



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

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