| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 522 人关注过本帖
标题:关于变量返回值的小问题!
只看楼主 加入收藏
newCpp
Rank: 5Rank: 5
来 自:火星
等 级:职业侠客
威 望:3
帖 子:256
专家分:375
注 册:2009-8-17
结帖率:97.83%
收藏
已结贴  问题点数:20 回复次数:3 
关于变量返回值的小问题!
程序代码:
#include <iostream>
using namespace std;
int MAX(int x,int y)
{int z;


return (x>y)?x=y:y;
}
int main()
{
int a,b,c;
cin>>a>>b;
c=MAX(a,b);
cout<<a<<" "<<b<<" "<<c<<endl;
return 0;
}

这样的话,只有c接收到了return 返回回来的值

a同b的数值如果没有使用引用或指针的话,都不会有变化!
那么除了这种c=MAX(a,b);
还有别的什么方式可以接收到返回回来的值?
搜索更多相关主题的帖子: 返回值 变量 
2009-10-12 19:57
东海一鱼
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:48
帖 子:757
专家分:4760
注 册:2009-8-10
收藏
得分:10 
如果你知道函数是怎样接受参数,怎样返回结果的。那末这个问题就太简单了。

函数参数传递有3种形式:

1、约定内存地址方式,调用方和被调用方约定好内存地址传递参数。这种方式太死板,现在已无人使用。

2、约定寄存器传递,用寄存器传递参数。这种方法速度最快,缺点是x86寄存器太稀少,参数多时还要结合3的方法。目前Delphi的函数调用方式就寄存器法。

3、堆栈传递法,调用方把参数压入堆栈,被调函数从堆栈中将参数取出。目前绝大多数语言编译器都采用此法。

2、3两种方法的函数结果一般都通过eax寄存器返回。大于32位的结果通过edx\eax返回。浮点结果通过浮点栈顶寄存器返回。

明白了上面的,实际上你就可以设计各种函数的返回方式。通过向其他寄存器写值、用堆栈传递要返回结果的缓冲区、........

举世而誉之而不加劝,举世而非之而不加沮,定乎内外之分,辩乎荣辱之境,斯已矣。彼其于世未数数然也。
2009-10-12 22:16
lampeter123
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:54
帖 子:2508
专家分:6424
注 册:2009-1-30
收藏
得分:5 
楼上的解释有点复杂。。。

你的优秀和我的人生无关!!!!
    
    我要过的,是属于我自己的生活~~~
2009-10-13 12:40
mengfp
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:45
专家分:141
注 册:2009-8-5
收藏
得分:5 
定义引用或者地址传参
2009-10-14 11:56
快速回复:关于变量返回值的小问题!
数据加载中...
 
   



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

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