C语言 求这2个表达式的结果和详细解释
要求:求出表达式的值和变量ikj的值(初值分别为i1j4k5)1:i=j=k---22:!i<1||j>1&&(k=100)...
要求:求出表达式的值和变量i k j 的值(初值分别为i 1 j 4 k 5)
1:i=j=k---2
2:!i<1||j>1&&(k=100) 展开
1:i=j=k---2
2:!i<1||j>1&&(k=100) 展开
2个回答
展开全部
1:语句1执行完后,i=j=3, k=4;
赋值运算从右向左,先计算k-2,将值赋给j,然后赋给i;
最后执行k--,于是k=4。
2:语句2执行完后,i=j=3, k = 4
这里要注意的是||、&&运算符具有短路特性,即:如果前面的表达式能决定整个表达式的值,则不会再计算后面的表达式。因为!i<1是真,后面的运算符是||,所以编译器会认为整个表达式为真,不会再执行k=100。如果是(!i<1||j>1)&&(k=100),则i=j=3, k=100。
赋值运算从右向左,先计算k-2,将值赋给j,然后赋给i;
最后执行k--,于是k=4。
2:语句2执行完后,i=j=3, k = 4
这里要注意的是||、&&运算符具有短路特性,即:如果前面的表达式能决定整个表达式的值,则不会再计算后面的表达式。因为!i<1是真,后面的运算符是||,所以编译器会认为整个表达式为真,不会再执行k=100。如果是(!i<1||j>1)&&(k=100),则i=j=3, k=100。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询