社区
C++ 语言
帖子详情
请教一个函数的问题?
shengyuan5278
2006-04-04 09:34:48
#include <iostream.h>
int fun(int x,int y)
{ return x*y;}
void main()
{ int k=5;
cout<<fun(k++, ++k)<<endl;
}
为什么输出为:36?如果这样cout<<fun(++k, k++)<<endl;则为37,能帮我分析一下吗?
...全文
244
10
打赏
收藏
请教一个函数的问题?
#include int fun(int x,int y) { return x*y;} void main() { int k=5; cout<<fun(k++, ++k)<<endl; } 为什么输出为:36?如果这样cout<<fun(++k, k++)<<endl;则为37,能帮我分析一下吗?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
json_001
2006-04-04
打赏
举报
回复
vc6.0 这个函数参数的顺序也可以从这个例子里清楚的看出来
#include <iostream.h>
class Base {
public:
Base() {
cout<<"construct Base instance"<<endl;
}
Base(Base& b) {
cout<<"copy Base instance"<<endl;
}
~Base() {
cout<<"destroy Base instance"<<endl;
}
};
class Derived:public Base {
public:
Derived() {
cout<<"construct Derived instance"<<endl;
}
Derived(Derived& d) {
cout<<"copy Derived instance"<<endl;
}
~Derived() {
cout<<"destroy Derived instance"<<endl;
}
};
void func(Base a, Derived d) {
}
void main()
{
Base b;
Derived d;
cout<<"call the function"<<endl;
func(b, d);
cout<<"end the function"<<endl;
}
lengxiao_wang
2006-04-04
打赏
举报
回复
语法糖,应该避免这样写,在vc6和vc7中,我追踪过类似的问题,发觉俩个编译器对此有不同的实现!
thinkingli
2006-04-04
打赏
举报
回复
ls正解,编译器是从右向左读取参数的。
iamcaicainiao
2006-04-04
打赏
举报
回复
这个跟编译器有关。不同编译器可能不同结果
cunsh
2006-04-04
打赏
举报
回复
参数的计算顺序没有规定.楼主不要这么写呀?
cwowlonglong
2006-04-04
打赏
举报
回复
不明白,学习
json_001
2006-04-04
打赏
举报
回复
执行完这个表达式的时候,k变成了6
fun(k++, ++k)
执行完这个表达式的时候,k变成了7
cout<<fun(k++, ++k)<<endl;
fun(k++, ++k)和这个fun(k, ++k)在函数中的效果一样
cout<<fun(++k, k++)<<endl;我得到是30,VC6.0
函数里的参数应该是从右往左的顺序计算的
逸学堂
2006-04-04
打赏
举报
回复
编译相关,首先先确定默认函数调用约定。
理解上面的最好方法是,查看反汇编。
zhuying1983
2006-04-04
打赏
举报
回复
c++中参数是从右往左读,++k返回6,k变成6,接着k++返回6,k变成7,6*6 = 36
bonseedd
2006-04-04
打赏
举报
回复
应该是30
MFC 如何解决多个按钮响应
一个
函数
的
问题
这个记录主要是解决上
一个
动态创建按钮控件时遗留下的
一个
问题
,即有多个控件,它们做的动作几乎一样,都是点击它时弹出它的文本, 那么这里的代码除了绑定消息那里与ID有关外,其它的代码差不多,如果有一百个或都更多的按钮,难道我要
一个
一个
的绑定吗? 说了这么多
问题
就是如何解决多个按钮响应
一个
函数
? 解决办法是: ON_COMMAND_RANGE BEGIN_MESSAGE_MAP(CCtrl
HW02 lambda
函数
的
一个
问题
阐述
一个
有关lambda
函数
的
问题
首先定义accumulate
函数
def accumulate(combiner, base, n, term): """Return the result of combining the first n terms in a sequence and base. The terms to be combined are term(1), term(2), ..., term(n). combiner is a two-argument com
VLOOKUP
函数
最后
一个
参数导致的
问题
作者:iamlaosong 今天同事问了我
一个
vlookup
函数
的
问题
。他在使用这个
函数
时发现明明有值却显示#N/A。公式是复制的,只有一行没有结果,其它都有结果,不存在公式错误或者值不对的
问题
,如下图所示: 我们知道,VLOOKUP第4参数(最后
一个
参数)为TRUE或忽略时是非精确匹配,为FALSE或0时是精确匹配,同事没有写第4个参数,所以结果是非精确匹配。有人说最后
一个
参数用TRUE...
求
一个
函数
的反
函数
问题
反
函数
求解
问题
是数学中常见的
问题
,主要涉及到对给定
函数
求其反
函数
。反
函数
是原
函数
的逆运算,即如果
一个
函数
的值域是另
一个
函数
的定义域,那么这两个
函数
互为反
函数
。
一个
由模板
函数
引起的
问题
// implement strcmp-like generic compare function // returns 0 if the values are equal, 1 if v1 is larger, -1 if v1 is smaller template typename T> int compare(const T &v1, const T
C++ 语言
65,211
社区成员
250,514
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章