关于表达式c=(a%b,a/b),

ErikChen1985 2005-06-27 09:49:29
书上有一题:
int a=20,b=6,c;
printf("%d\n",c=(a%b,a/b);

问输出结果。

这个题目我在tc上连编译都通过不了,不知道是什么问题。
是书上错了吗?
...全文
375 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
yuchengliu 2005-06-28
  • 打赏
  • 举报
回复
int a=20,b=6,c;
printf("%d\n",c=(a%b,a/b);

这个是编译器的问题
在Bcc上, 只计算a/b的值!
kudoxinyiji 2005-06-28
  • 打赏
  • 举报
回复
这种只能作为精典的面试题。
TC 编不过换一个编译器试试。
naturemickey 2005-06-28
  • 打赏
  • 举报
回复
to: takbj(剑之吻)
逗号表达式的值是最后一下表达式的值。这是标准。

答案是3。
Jim_King_2000 2005-06-28
  • 打赏
  • 举报
回复
逗号表达式不是这样用的。这样用前面一个表达式就浪费了。如果是这样用的话c = a *= 10, a / b……
ErikChen1985 2005-06-28
  • 打赏
  • 举报
回复
那这个运算符用在什么地方?
clear117 2005-06-28
  • 打赏
  • 举报
回复
mark
wohow 2005-06-28
  • 打赏
  • 举报
回复
叫你看一下逗号表达式的计算顺序和结果,在本例a%b中没有作用,但是逗号左边的运算有时还是有作用的
TechEye 2005-06-28
  • 打赏
  • 举报
回复
a%b 根本没起作用。
niefuhua 2005-06-28
  • 打赏
  • 举报
回复
3
ErikChen1985 2005-06-28
  • 打赏
  • 举报
回复
那前面那个值有什么用?
Jim_King_2000 2005-06-27
  • 打赏
  • 举报
回复
逗号表达式,c的值应该是最后一个表达式,即a/b。
megaboy 2005-06-27
  • 打赏
  • 举报
回复
to 楼主:

Code has no effect in function main这句话指的是那个a%b,因为这个表达式没有任何副作用,它存在不存在都是无所谓的,如果你把它改成printf("%d\n",c=(c=a%b,a/b));就不会出那个警告了。
takbj 2005-06-27
  • 打赏
  • 举报
回复
将a%b或a/b的值给c;(具体是那一个要看编译器了)
ErikChen1985 2005-06-27
  • 打赏
  • 举报
回复
还有,有一个警告:Code has no effect in function main。是什么意思啊?
ErikChen1985 2005-06-27
  • 打赏
  • 举报
回复
这是什么表达式啊?
值是什么赋的?
谢谢!
foochow 2005-06-27
  • 打赏
  • 举报
回复
少括号^_^
qfeng_zhao 2005-06-27
  • 打赏
  • 举报
回复
printf("%d\n",c=(a%b,a/b));
少个括号

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧