| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 780 人关注过本帖
标题:新手-函数调用中(两个形参),实参给形参传递的顺序是什么
取消只看楼主 加入收藏
NET_雷
Rank: 1
等 级:新手上路
帖 子:14
专家分:5
注 册:2013-4-7
结帖率:0
收藏
 问题点数:0 回复次数:1 
新手-函数调用中(两个形参),实参给形参传递的顺序是什么
#include <stdio.h>
int func(int a,int b)
{
    printf("%d,%d\n",a,b);
    int c;
    c=a+b;
    return c;
}
int main(void)
{
    int x=6,r;
    r=func(x++,x++);//7,6 如此看:执行顺序为从右往左
    printf("%d\n",x);//8
    printf("%d\n\n",r);//13
    x = 6;
    r=func(x++,++x);//7,8 如此看,好像是从左往右,但是为什么第一个参数是7?
    printf("%d\n",x);//8
    printf("%d\n\n",r);//15
    x=6;
    r=func(++x,++x);//8,8 如此看,搞不懂。。。
    printf("%d\n",x);//8
    printf("%d\n\n",r);//16
    x=6;
    r=func(++x,x++);//8,6 如此看,执行顺序为从右往左。
    printf("%d\n",x);//8
    printf("%d\n\n",r);//14


}                    

ps.注释后面的是数字是输出。
ps..这几个递增的实参传给形参后变得好奇怪。
ps...怎么结帖?感谢!先去上自习了
求;

[ 本帖最后由 NET_雷 于 2013-4-18 22:44 编辑 ]
搜索更多相关主题的帖子: include return 
2013-04-18 18:34
NET_雷
Rank: 1
等 级:新手上路
帖 子:14
专家分:5
注 册:2013-4-7
收藏
得分:0 
回复 楼主 NET_雷
在百度上搜索有人说是未定义行为。嘛,未定义行为倒是能理解啦。不过这么简单么?我还以为是有什么规则呢。求解答
2013-04-18 18:39
快速回复:新手-函数调用中(两个形参),实参给形参传递的顺序是什么
数据加载中...
 
   



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

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