标题:值传递的问题?
只看楼主
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



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




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

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