就助 有关C语言
我刚开始学这种语言,遇到下面的问题,老是想不明白:int x=0,y=1;
问执行表达式++x||y++后为什么y的值是1
希望各位高手不吝赐教,谢谢! 当++x的运算的值为非0时,y++不再执行.
如果改成++x&&y++,
那么,y的值会变成2. 楼上你终于做了点好事了...
补充楼上的:楼上那个概念叫做逻辑短路,就是在&&和||运算符中,如果前一个条件已经足以决定整个逻辑表达式的结果的时候,逻辑运算符后面的语句不再执行.比如1||x++,这里x++不会执行,再比如0&&x++,同样x++不会执行. 其实是我手贱,
这是我曾经思考过的问题。
见到一时手贱就说了一下。
还是你的解释 比较全面,PF一下。 楼上终于学会奉承了...哈哈,,,恭喜...进步了. 请不要误解我。。
该 PF的我会PF,该 叼的我还叼。 上面两位解释得真不错 , PF 一个!
请教
我是刚学C语言的,有以下问题请教:#include <stdio.h>
void main ()
{int i,j,m,n;
i=8;
j=10;
m=++i;
n=j++;
printf("%d,%d,%d,%d\n",i,j,m,n);
}
为什么i,j的值不是8,10;而是9,11.
谢谢! 楼上的,无论是++i还是i++,对于i而言已经很确实的自增1了. vfhp yyq 8 sov rhf rhf ysj itfk xk r C ygk yyy tkyc ymyf. 楼上干嘛??? 他想说的是:建议8楼看看谭浩强的C语言程序设计. Sorry,
昨晚喝多了,
忘了转换输入法. 楼上的,汗一个。 12楼的暴强!五笔吗? 大佬啊,我就是学谭浩强的C语言程序设计的.但还是 不明啊?版主能详细介绍下吗? m=++i等价于 i=i+1;m=i;
n=j++ 等价于n=j;j=j+1;
如果还不明白的话你可得好好的去看看书了. 随便找一本c/c++的书都会说这个问题的,
耐心看看,看多几次吧. 不明白只能说明一个问题,看书不认真,不理解的没有看第二遍.... 原帖由 Freedomer 于 2006-4-1 18:24 发表
我是刚学C语言的,有以下问题请教:
#include <stdio.h>
void main ()
{int i,j,m,n;
i=8;
j=10;
m=++i;
n=j++;
printf("%d,%d,%d,%d\n",i,j,m,n);
}
为什么i,j的值不是8,10;而是9 ...
如果是问M,N的话还可以原谅..问I,J只能说你没认真读书了.
页:
[1]