求教,,,

向良玉 2009-02-26 09:45:00
如果定义int x=10,y=3,z;
那么printf("&d\n",z=(x%y,x/y));输出的结果是什么?
为什么?
里面z=(x%y,x/y)是什么意思啊?
...全文
92 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
happytang 2009-02-26
  • 打赏
  • 举报
回复
()里面是逗号表达式,其值是最后一个表达式的值,也就是x/y

z=3,是赋值表达式,赋值表达式的结果是等号左边,所以是3

解释的很清楚,实际应用过程中很少用到
jue222 2009-02-26
  • 打赏
  • 举报
回复

" , ",也是运算符,常和()一起使用,形式:(表达式,表达式,表达式,...),结果取最后一个表达是的值
  • 打赏
  • 举报
回复
关键就在于z=(),这个表达式,z接受()最后一个成员的值。
其他貌似没什么可说的。
yangch_nhcmo 2009-02-26
  • 打赏
  • 举报
回复
逗号表达式,其值是最后一个表达式的值
waizqfor 2009-02-26
  • 打赏
  • 举报
回复
[Quote=引用楼主 xiangliangyu2008 的帖子:]
如果定义int x=10,y=3,z;
那么printf("&d\n",z=(x%y,x/y));输出的结果是什么?
为什么?
里面z=(x%y,x/y)是什么意思啊?
[/Quote]

#include <stdio.h>
void main()
{
int x=10,y=3,z;
printf("%d\n",z=(x%y,x/y));//这里的printf函数的 输出 时 是从右向左看 所以先计算出x/y 输出了 %d的值 也就3
}


z=(x%y,x/y)这只是一个迷惑你的输出形式 没什么实际意义
太乙 2009-02-26
  • 打赏
  • 举报
回复
那么printf("&d\n",z=(x%y,x/y));输出的结果是什么? 
x%y == 10%3 ==1
x/y == 10/3 ==3;

z=(1,3)==3

所以输出是3




里面z=(x%y,x/y)是什么意思啊?



()里面是逗号表达式,其值是最后一个表达式的值,也就是x/y

z=3,是赋值表达式,赋值表达式的结果是等号左边,所以是3

69,369

社区成员

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

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