| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 454 人关注过本帖
标题:这个帮忙看下
只看楼主 加入收藏
canxden
Rank: 3Rank: 3
来 自:江西奉新
等 级:论坛游侠
帖 子:114
专家分:105
注 册:2011-3-18
结帖率:100%
收藏
 问题点数:0 回复次数:9 
这个帮忙看下
程序代码:
#include <stdio.h>
int main (void) {
   int k = 12;
   int m = ++k;
   int n = (m , ++k);
   printf("%d\t%d\t%d\n",k ,m ,n);
   
   return 0;
}


这里的k m n输出结果是14 13 14 那个n的14怎么算出来的…
2011-03-30 09:02
platolgq
Rank: 2
来 自:江西
等 级:论坛游民
帖 子:74
专家分:87
注 册:2011-2-24
收藏
得分:0 
是不是还有啊!怎么少了点东西

C种的自学者
2011-03-30 09:45
canxden
Rank: 3Rank: 3
来 自:江西奉新
等 级:论坛游侠
帖 子:114
专家分:105
注 册:2011-3-18
收藏
得分:0 
没少东西…完全可以输出结果……但是就是不知道结果怎么来的…

一个人能有多坚强,太安静,就成了孤单。
2011-03-30 10:08
autumn1202
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:64
专家分:553
注 册:2011-2-21
收藏
得分:0 
这个是不常用的逗号运算符,(m , ++k),计算顺序为从左到右,返回值为最后一个表达式的值
2011-03-30 10:09
canxden
Rank: 3Rank: 3
来 自:江西奉新
等 级:论坛游侠
帖 子:114
专家分:105
注 册:2011-3-18
收藏
得分:0 
也就是说前面那个m是无意义的(相对这道题来说)…只看后面的是把…

一个人能有多坚强,太安静,就成了孤单。
2011-03-30 12:17
ansic
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:恍惚窈冥
等 级:城市猎人
帖 子:1543
专家分:5367
注 册:2011-2-15
收藏
得分:0 
逗号运算符的运算顺序是从右到左,而()在C里通常解释为一个函数,所以, 我觉得无论++k前面是什么,实际
相当于
n=(++k)
也就是说,如果(++k,m),则n=m
确实很费劲, 我看还是坐等高手吧。。

[ 本帖最后由 ansic 于 2011-3-30 12:28 编辑 ]

善人者,不善人之师;不善人者,善人之资。不贵其师,不爱其资,虽智大迷。
2011-03-30 12:25
我是传奇
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:88
专家分:109
注 册:2011-3-21
收藏
得分:0 
#include <stdio.h>
int main (void) {
   int k = 12;
   int m = ++k;
   int n = (m , ++k);//n为12+1+1=14
   printf("%d\t%d\t%d\n",k ,m ,n);
   
   return 0;//k是那个返回值14
}



2011-03-30 12:44
autumn1202
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:64
专家分:553
注 册:2011-2-21
收藏
得分:0 
以下是引用canxden在2011-3-30 12:17:28的发言:

也就是说前面那个m是无意义的(相对这道题来说)…只看后面的是把…
是的,m在这里完全没意义
当然有些bt代码会把逗号前面也进行某些运算,如 x = (--y, y < 0),相当与对y进行了两次操作,但是取第二个的值
2011-03-31 09:51
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:0 
逗号表达式 应该是返回右操作数  所以n是14

                                         
===========深入<----------------->浅出============
2011-03-31 11:38
ansic
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:恍惚窈冥
等 级:城市猎人
帖 子:1543
专家分:5367
注 册:2011-2-15
收藏
得分:0 
以下是引用laoyang103在2011-3-31 11:38:05的发言:

逗号表达式 应该是返回右操作数  所以n是14

学习!!!

善人者,不善人之师;不善人者,善人之资。不贵其师,不爱其资,虽智大迷。
2011-03-31 11:59
快速回复:这个帮忙看下
数据加载中...
 
   



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

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