SQ 发表于 2006-2-26 21:53

就助 有关C语言

我刚开始学这种语言,遇到下面的问题,老是想不明白:

int x=0,y=1;
问执行表达式++x||y++后为什么y的值是1

希望各位高手不吝赐教,谢谢!

用程序诠释生命 发表于 2006-2-26 23:11

当++x的运算的值为非0时,y++不再执行.
如果改成++x&&y++,
那么,y的值会变成2.

wool王 发表于 2006-2-27 11:14

楼上你终于做了点好事了...

补充楼上的:楼上那个概念叫做逻辑短路,就是在&&和||运算符中,如果前一个条件已经足以决定整个逻辑表达式的结果的时候,逻辑运算符后面的语句不再执行.比如1||x++,这里x++不会执行,再比如0&&x++,同样x++不会执行.

用程序诠释生命 发表于 2006-2-28 19:33

其实是我手贱,
这是我曾经思考过的问题。
见到一时手贱就说了一下。

还是你的解释 比较全面,PF一下。

wool王 发表于 2006-3-2 00:10

楼上终于学会奉承了...哈哈,,,恭喜...进步了.

用程序诠释生命 发表于 2006-3-3 12:07

请不要误解我。。
该 PF的我会PF,该 叼的我还叼。

needyou 发表于 2006-3-17 23:01

上面两位解释得真不错 , PF 一个!

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,11.
谢谢!

wool王 发表于 2006-4-1 19:15

楼上的,无论是++i还是i++,对于i而言已经很确实的自增1了.

hjack 发表于 2006-4-1 23:42

vfhp yyq 8 sov rhf rhf ysj itfk xk r C ygk yyy tkyc ymyf.

wool王 发表于 2006-4-2 01:36

楼上干嘛???

从前有座山 发表于 2006-4-2 09:43

他想说的是:建议8楼看看谭浩强的C语言程序设计.

hjack 发表于 2006-4-2 11:45

Sorry,
昨晚喝多了,
忘了转换输入法.

loom 发表于 2006-4-2 13:10

楼上的,汗一个。

oushede 发表于 2006-4-2 13:43

12楼的暴强!五笔吗?

Freedomer 发表于 2006-4-3 22:05

大佬啊,我就是学谭浩强的C语言程序设计的.但还是 不明啊?版主能详细介绍下吗?

needyou 发表于 2006-4-20 13:38

m=++i等价于   i=i+1;m=i;

n=j++ 等价于n=j;j=j+1;

如果还不明白的话你可得好好的去看看书了.

hjack 发表于 2006-4-20 21:15

随便找一本c/c++的书都会说这个问题的,

耐心看看,看多几次吧.

jinry 发表于 2006-4-21 13:07

不明白只能说明一个问题,看书不认真,不理解的没有看第二遍....

木偶 发表于 2006-4-23 00:57

原帖由 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]
查看完整版本: 就助 有关C语言