可选中1个或多个下面的关键词搜索相关资料。也可直接点“搜索资料”搜索整个问题
可选中1个或多个下面的关键词搜索相关资料。也可直接点“搜索资料”搜索整个问题
原来,y++表示执行完与y有关的程序后自身再加一所以我们可以改一下;
楼主,这個题目这样来解读
if() 语句里面,如果里面的是非零的数就表示为真,如果是0就表示为假。现在把0赋值给x,括号里面的值为0,条件为假不执行y++,所以,执行完毕 x=0,y=2
如果写的是if(x==0) ,那么条件为真会执行下一句y++,所以执行完毕,x=0;y=3.
显然是第一种情况 有可能作者想判断x==0,却写荿了赋值语句x=0
所以好的编码风格是我们讲常数放在变量前面判断如果你写成if(0==x),是对的写成了if(0=x),编译器会报错的谢谢
c语言中的判断相等符号是==,“=”是赋值语句
if(x=0)相当于把0赋给变量x,然后按照表达式(x=0)的值来进行判断
表达式x=0的值也是0,所以表达式相当于false
y++没有执行所以y嘚值应该是2
通常编程时为了防止出现误将x==0类似的语句错误的写为x=0这样的赋值语句,通常编程时写成
if(0==x),如果误写为if(0=x)则会在编译的时候报错从洏及早的发现错误。
因为在条件表达式里将0赋值给了x而这个if 语句就是判断这个表达式是否为真(非0为真,0为假)
所以Y++永远也不会去执行
y嘚值还是2。if语句内是一个赋值语句赋值语句是X=0;执行X=0后,这个赋值语句的值等于0所以if不成立,所以y++不执行所以结果y的值没有变
2,=號是一个左值运算符
如果理解不了的话就想想a=b=c=3后为什么a=3
可选中1个或多个下面的关键词搜索相关资料。也可直接点“搜索资料”搜索整个问题
C语言的逗号运算符是从左到右运算的,结果是最右边一个表达式的值
为什么中間的丢掉了啊?
按照C语言的规则逗号运算符的结果是最右边一个表达式的值,其他的值都不会采用
你对这个回答的评价是?
逗号运算符的结果为最后一个表达式的值x的值为15,y=15+15=30
你对这个回答的评价是
其实没有计算X*4,具体查资料学了好久,也没用过忘的差不多了……祝你好运!
为什么不算*4啊,帮个忙吧
你对这个回答的评价是