| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 553 人关注过本帖
标题:初学者问题,谁能帮我解释下
只看楼主 加入收藏
matter
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2008-6-4
收藏
 问题点数:0 回复次数:2 
初学者问题,谁能帮我解释下
struct two
{
    int n;    char ch;
};
func(struct two ex2)
{
    ex2.n+=10;
    ex2.ch-=1;
}
main()
{
    struct two ex1={5,'t'};
    func(ex1);
    printf("%d,%c",ex1.n,ex1.ch);
}

~~~~~~~~~~~~~~~~~~
就上面这段小程序,运行结果是 5,t

照我的理解是 15,s
因为我看着结构题用的没错,也函数调用。

可事实是 函数没有调用到。

如果要调用这个func函数,该怎么调用啊?
搜索更多相关主题的帖子: 解释 
2008-06-05 08:43
pinglideyu
Rank: 3Rank: 3
来 自:武汉工程大学
等 级:论坛游侠
威 望:1
帖 子:735
专家分:140
注 册:2007-1-7
收藏
得分:0 
结果并没有错。

我想提请LZ注意,你定义的两个变量的地址并没有改变。
我给出一个例子让你看看。

int n;
char ch;

n=5,ch=t
functionname(int n,char ch)
{
n+=5;
ch-=1;
}
在看第二个
functionname(int *n,char *ch)
{
*n+=5;
*ch-=1;
}
这就是区别了。

~~我的明天我知道~~
2008-06-05 08:54
mqh21364
Rank: 1
等 级:新手上路
帖 子:642
专家分:0
注 册:2008-2-28
收藏
得分:0 
传值和传地址的区别。

前不见古人,后不见来者。念天地之悠悠,独怆然而涕下。
2008-06-05 09:06
快速回复:初学者问题,谁能帮我解释下
数据加载中...
 
   



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

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