能力值:
( LV2,RANK:10 )
|
-
-
2 楼
老大们都去哪了
|
能力值:
( LV4,RANK:50 )
|
-
-
3 楼
x 加了3次 应该最后为6
y = 3+5+5 = 13
可能两编译器的支持的标准不同。。
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
那 那个Dev-C岂不是很Lj
明明三个自相加,结果x=4
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
第一次运行应该是:
x=4,y=11 对啊。。
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
就是x=4 才正确, 因为++x 和x++是不一样的
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
怎么对呢
三个自相加啊
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
他x是不是要先全部自相加完了才printf?
在前在后只是相对于运算式而言的
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
这样说:比如是个循环 ++x既是本次循环 就变为4,而x++是本次还为3,执行完后下次就为4
y=(x++)+(++x)+(x++); ,第一个x++ 应该为3吧, 加上 ++x 这次加的就是4, 最后的
x++ 因为本次x已经变了所以也是+4 ,y=11
如果你再运行 x=6 肯定的了
|
能力值:
( LV2,RANK:10 )
|
-
-
10 楼
main()
{
int x=1;
printf("%d",x++);
printf("%d",++x);
getch();
}
你运行一下这个就明白了
|
能力值:
( LV2,RANK:10 )
|
-
-
11 楼
错错错
你的算法跟Dev-C一样
但如果是浮点型(整数不一样)
就应该是x++ ==4,
然后在++x,这个时候x里面是4,所以加完他是5
最后在x++的时候就跟上面那位说的一样y=3+5+5
算完这步x还要自加1
最后printf
你老和我讨论自相加在前在后的问题,我知道啊
|
能力值:
( LV2,RANK:10 )
|
-
-
12 楼
我的算法?这和算法有关系么,不讨论了。没意思
|
能力值:
( LV2,RANK:10 )
|
-
-
13 楼
实话实说
倒是你试试就知道了
|
能力值:
( LV2,RANK:10 )
|
-
-
14 楼
明白了,好久不用C都忘了。
不过float和int 导致y 结果不一样就不明白了。。。
哎聪明的程序员用delphi,真正的程序员用c++。。。
我是懒程序员。。。还喜欢短时间内开发程序的
|
能力值:
( LV2,RANK:10 )
|
-
-
15 楼
|
能力值:
(RANK:260 )
|
-
-
16 楼
讨论标准“未定义”(或者“由实现定义”)的东西,没什么意义。
实际工作中当然不会写这样的代码吧(老板绝对不会允许的)?
考试也不会考“未标准化”的内容吧(没有标准答案)?
这样的代码更谈不上什么“技巧性”吧(连程序行为都不保证一致)?
因使用了标准中未定义或由实现定义的内容,如果程序因此发生了错误,责任完全在程序员。编译器是无责任的。
|
|
|