| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 795 人关注过本帖
标题:新手,请高手指点!!k=(i++,j++)是什么功能?
只看楼主 加入收藏
wyp02033
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2008-12-3
收藏
 问题点数:0 回复次数:3 
新手,请高手指点!!k=(i++,j++)是什么功能?
我是一个学习C++的新手,学习C++没多长时间。再学习过程中遇到了这样一个语句:
                      k=(i++,j++)
不知道是什么功能,请各位高手指点一二,谢谢!!

[[it] 本帖最后由 wyp02033 于 2008-12-4 18:28 编辑 [/it]]
搜索更多相关主题的帖子: 学习 
2008-12-04 18:23
zhangyafei4353
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2008-11-28
收藏
得分:0 
考察逗号运算符;i++;++i用法
程序:
#include <iostream.h>
void main()
{
    char m_exit;
    int k,i,j;
    k=i=j=0;
    k=(i++,j++);
    cout<<"k="<<k<<endl;
    cout<<"i="<<i<<endl;
    cout<<"j="<<j<<endl;
    while(m_exit!='Q')
    {
        cout<<"退出请输入Q:"; cin>>m_exit;
    }
}
结果如附件图:k=0;i=1;j=1;
逗号运算符优先级最低,方向是"自左至右";
i,j后加1运行结果为1;
k取j的值为0(j++之前的值);
意味着    k=(i++,j++);后++最后运行
个人意见,运行结果解释不敢确定。。。

未命名.jpg (47.64 KB)
图片附件: 游客没有浏览图片的权限,请 登录注册
2008-12-04 20:07
enlangs
Rank: 1
等 级:等待验证会员
威 望:2
帖 子:218
专家分:0
注 册:2007-5-28
收藏
得分:0 

 k=(i++,j++); //去掉括号也是一样的结果。

3.1.9逗号运算符
  多个表达式可以用逗号组合成一个表达式,即逗号表达式。
  逗号运算符带两个操作数,返回值是右操作数。
  逗号表达式的一般形式是:"表达式1,表达式2,……,表达式n",它的值是取表达式n的值。
  逗号运算符的用途仅在于解决只能出现一个表达式的地方却要出现多个表达式的问题。
例如:
  d1,d2,d3,d4
  这里d1、d2、d3、d4都是一个表达式。整个表达式的值由最后一个表达式的值决定。计算顺序是从左至右依次计算各个表达式的值,最后计算的表达式的值和类型便是整个表达式的值和类型。
例3-2
int m, n, min;
int mCount = 0, nCount = 0;
// ...
min = (m < n ? mCount++, m : nCount++, n);

  当m小于n时,计算mCount++,m存储在min中。否则,计算nCount++,n存储在min中。

表3-12
类型 运算 运算符 例子
逗号运算符 逗号运算符 , a=10,11,12


  表中例子的结果是a为12。

以上转载自无忧考网:http://www.
2008-12-04 21:46
wyp02033
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2008-12-3
收藏
得分:0 
谢谢两位,现在我基本明白了。我刚接触C++不久,以后还希望给位多多指教。
2008-12-05 17:54
快速回复:新手,请高手指点!!k=(i++,j++)是什么功能?
数据加载中...
 
   



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

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