来拿分吧,

li905663280 2014-07-17 12:00:38

#include <stdio.h>
int main(void)
{
int a,b=10,c=15;
float x=12.345,y=0.1234;

printf("%d\n",x+y||a+b||c);
getch();

}

结果为什么是1
...全文
205 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
cf2d612 2014-07-19
  • 打赏
  • 举报
回复
因为表达式非零
lcy_888 2014-07-19
  • 打赏
  • 举报
回复
打印的时候既然用了“||”,就表示要逻辑值喽。
mujiok2003 2014-07-19
  • 打赏
  • 举报
回复
http://ideone.com/IOCFWg
为了自己努力 2014-07-19
  • 打赏
  • 举报
回复
逻辑表达式 或 一真全真,前面真就不不用再看后面
chy7424994 2014-07-19
  • 打赏
  • 举报
回复
||截断运算,第一个非零就结束运算,结果为1
  • 打赏
  • 举报
回复
引用 楼主 li905663280 的回复:

#include <stdio.h>
int main(void)
{
int a,b=10,c=15;
float x=12.345,y=0.1234;

printf("%d\n",x+y||a+b||c);
getch();
  
}
结果为什么是1
因为这是逻辑“或”运算有非零,结果就是1
勤奋的小游侠 2014-07-17
  • 打赏
  • 举报
回复
||操作符的结果只有0和1。你上面的操作结果刚好是1
ImAmelie 2014-07-17
  • 打赏
  • 举报
回复
程序判断真假是判断0和非0的,输出真假是输出0和1的 0为假 非0为真 x+y||a+b||c 第一个x+y因为是非0值 所以程序判断为真 此时整个表达式不再进行判断 x+y||a+b||c 的值为1
lpyoung 2014-07-17
  • 打赏
  • 举报
回复
没想到这儿也有个优先级的问题
loong0306 2014-07-17
  • 打赏
  • 举报
回复
float x=12.345,y=0.1234; printf("%d\n",x+y||a+b||c); x+y ---> 1 a+b ---> 1 c---> 1 1 || 1 || 1 ---> 1
garbageam 2014-07-17
  • 打赏
  • 举报
回复
我来那分了..
pricks 2014-07-17
  • 打赏
  • 举报
回复
老赵又在复制粘贴啦……
707wk 2014-07-17
  • 打赏
  • 举报
回复
该说的都说了,我就打一下酱油算了
xunfeng0862 2014-07-17
  • 打赏
  • 举报
回复
简单点说就是优先级问题 +的优先级大于|| 上面等式等价于printf("%d\n",(x+y)||(a+b)||c); 一目了然吧
赵4老师 2014-07-17
  • 打赏
  • 举报
回复
计算机组成原理→DOS命令→汇编语言→C语言(不包括C++)、代码书写规范→数据结构、编译原理、操作系统→计算机网络、数据库原理、正则表达式→其它语言(包括C++)、架构…… 对学习编程者的忠告: 眼过千遍不如手过一遍! 书看千行不如手敲一行! 手敲千行不如单步一行! 单步源代码千行不如单步对应汇编一行! VC调试时按Alt+8、Alt+7、Alt+6和Alt+5,打开汇编窗口、堆栈窗口、内存窗口和寄存器窗口看每句C对应的汇编、单步执行并观察相应堆栈、内存和寄存器变化,这样过一遍不就啥都明白了吗。 对VC来说,所谓‘调试时’就是编译连接通过以后,按F10或F11键单步执行一步以后的时候,或者在某行按F9设了断点后按F5执行停在该断点处的时候。 (Turbo C或Borland C用Turbo Debugger调试,Linux或Unix下用GDB调试时,看每句C对应的汇编并单步执行观察相应内存和寄存器变化。) 不要迷信书、考题、老师、回帖; 要迷信CPU、编译器、调试器、运行结果。 并请结合“盲人摸太阳”和“驾船出海时一定只带一个指南针。”加以理解。 任何理论、权威、传说、真理、标准、解释、想象、知识……都比不上摆在眼前的事实! 有人说一套做一套,你相信他说的还是相信他做的? 其实严格来说这个世界上古往今来所有人都是说一套做一套,不是吗? 不要写连自己也预测不了结果的代码!
Cnwanglin 2014-07-17
  • 打赏
  • 举报
回复
x+y||a+b||c 整个做为一个表达式 x+y 或上 a+ b 或上 c x+y a+b c 中间有一个为1 ,或的结果就是1

69,371

社区成员

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

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