| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 644 人关注过本帖
标题:大家莱试试这两段代码,看看结果是什么,为什么呢?
只看楼主 加入收藏
hlhlf4
Rank: 1
等 级:新手上路
帖 子:7
专家分:2
注 册:2012-7-25
收藏
 问题点数:0 回复次数:10 
大家莱试试这两段代码,看看结果是什么,为什么呢?
程序代码:
    int i=3;
    int j=3;
    i = pow(++i,2);
    j = pow(j++,2);
    cout<<i<<endl;
    cout<<j<<endl;


程序代码:
    int i = 0;
    int j = 0;
    if (++i)
        i++;
    if (j++)
        j++;
    cout<<i<<endl;
    cout<<j<<endl;
搜索更多相关主题的帖子: 看看 
2012-10-08 22:14
寒风中的细雨
Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17
等 级:贵宾
威 望:66
帖 子:1710
专家分:8645
注 册:2009-9-15
收藏
得分:0 
没发现什么问题
2012-10-08 23:26
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:0 
第一段代码
++i 会修改 i,i = 也会修改 i,所以……
2012-10-09 08:31
zhang197771
Rank: 1
等 级:新手上路
帖 子:19
专家分:4
注 册:2012-8-28
收藏
得分:0 
if (++i)
    i++;
这段代码在vc6.0中居然编译能通过,结果还是2,非常疑惑!!
2012-10-09 13:08
hlhlf4
Rank: 1
等 级:新手上路
帖 子:7
专家分:2
注 册:2012-7-25
收藏
得分:0 
回复 4楼 zhang197771
不应该吗?
2012-10-10 02:32
zhang197771
Rank: 1
等 级:新手上路
帖 子:19
专家分:4
注 册:2012-8-28
收藏
得分:0 
if(++i)为真后,在执行i++,那这个循环不就成死循环了,它怎么可能退出去啊,菜鸟求帮助。
2012-10-10 12:30
oncoldrain
Rank: 2
等 级:论坛游民
威 望:1
帖 子:11
专家分:36
注 册:2012-10-11
收藏
得分:0 
if (++i)  先加1再判断,非0都为真啊
    i++;  然后再加1,最后当然就是2了

i++ 完后 if语句都完了 怎么会是死循环  而且if语句也不是循环语句

57818点net
2012-10-11 01:00
oncoldrain
Rank: 2
等 级:论坛游民
威 望:1
帖 子:11
专家分:36
注 册:2012-10-11
收藏
得分:0 
if (j++)  先判断再加1,j开始值 是0,判断为假,所以后面的那个 j++ 是不会执行的 ,最后j=1
    j++;  

57818点net
2012-10-11 01:04
a99875984
Rank: 2
等 级:论坛游民
帖 子:188
专家分:24
注 册:2012-2-11
收藏
得分:0 
回复 6楼 zhang197771
这是IF,不是FOR啊,拜托,这个千万要搞清楚啊。这是最基础,也是最重要的两个关键词啊
2012-10-11 08:31
fxbszj
Rank: 5Rank: 5
来 自:阿修罗界
等 级:职业侠客
威 望:4
帖 子:163
专家分:331
注 册:2012-10-8
收藏
得分:0 
回复 6楼 zhang197771
这个不是循环啊,if判断为真后,执行里面的语句,执行后不会再次执行的。循环是for、while等判断
2012-10-11 10:38
快速回复:大家莱试试这两段代码,看看结果是什么,为什么呢?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016324 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved