6.执行下面程序段后,y的结果是________。 int x,y; x=y=2; x=x-2&&(y=y+1); printf("%d",y); A. 3 B. 2

请说明原因

x=x-2&&(y=y+1); 首先要明白运算的优先级x=x-2&&(y=y+1),单目运算符-比逻辑运算符&&要高,所以先运行x-2等于0,那么就是假了,&&是与,根据逻辑运算表有一部分为假则全部为假,后半部分(y=y+1)就不会继续运行了,那么输出的y自然而然为2,不会加1,希望你多看看运算优先级的知识,大致的顺序为单目最高,接下来是双目运算,下来是位移运算,下来是关系运算,下来是位运算,再是逻辑运算,最后是三目运算和顺序运算。
竭诚为您服务,解答难题,祝您开心,加油兄弟!!!
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-03-01
答案是B。
x-2=0,则&&的左边为假,其右边的部分就不再运行,及(y=y+1)并没有执行
相似回答
大家正在搜