不明白

cih103 2007-02-16 08:31:35



int m=0,n=0,a=0,b=0,c=0,d=0;
(m=a==b)||(n=c==d);
执行这个语句后m=?,n=?
m=1,n=0,为什么?

还有一题
int i=10;
printf("%d,%d",++i,i++);


int i=010;
printf("%d,%d",++i,i++);
...全文
226 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaoke1986 2007-02-18
  • 打赏
  • 举报
回复
解释的很正确,建议楼主好好学学C的基础知识哦
懒牛科技 2007-02-17
  • 打赏
  • 举报
回复
楼上正解,
楼主应该看看各运算符的优先顺序
^_^
楼主问了很多简单的问题,这说明楼主的基础知识不够,应该多看看书,就能明白了
fosjos 2007-02-16
  • 打赏
  • 举报
回复
(m=a==b)||(n=c==d);
"=="优先级高于"="
a==b为真,所以m=1;
"||"左侧为真,返回为1,右侧不执行,n不变,只有左侧为假时,右侧才执行

printf参数执行从右到左,i++返回10,i自增为11,++i返回12
010是8进制,类似0x是16进制

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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