| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2185 人关注过本帖
标题:搞不懂,全是i++问题!
取消只看楼主 加入收藏
越月
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2009-11-22
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:2 
搞不懂,全是i++问题!
1.
#include<stdio.h>
main()
{
   int i=1,z;
   z=--i||i++;
   printf("%d  %d",z,i);
}


2.
#include<stdio.h>
main()
{
   int i=1,z;
   z=i--||i++;
   printf("%d  %d",z,i);
}

3.#include<stdio.h>
main()
{
   int i=1;
   printf("%d  %d",++i,i++);
}

4.(这道别人在论坛已经问过,但我还是不理解)
#include<stdio.h>
main()
{
   int i=5,j=5,p,q;
   p=(i++)+(i++)+(i++);
   q=(++j)+(++j)+(++j);
printf("%d  %d  %d  %d",p,i,q,j);
}


我编了一次,输出结果是
第一道:0  1
第二道:1  0
第三道:3  1
第四道:15  8  22  8
各位大虾能给我一个详尽的解释吗?谢谢!!!

(道个歉:二楼的,抱歉,我第一次时把第一题的“--i”抄错成“i--”了,现在改回来了,我用的环境是Cygwin,我编了一次,这次没错了。)

[ 本帖最后由 越月 于 2009-11-22 23:40 编辑 ]
搜索更多相关主题的帖子: include 
2009-11-22 22:34
越月
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2009-11-22
收藏
得分:0 
,道个歉:二楼的,抱歉,我第一次时把第一题的“--i”抄错成“i--”了,现在改回来了,我用的环境是Cygwin,我再编了一次,如上没错。
2009-11-22 23:49
越月
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2009-11-22
收藏
得分:0 
首先先谢谢各位,我有一点想问的是:
像第一题中的:   z=--i||i++;      它是哪里先运算的啊,
--i是先减1再取值,i++是先取值再减1,这大家都知道的
我说一下我的疑问吧、
我先写一个小程序:
   #include<stdio.h>
   main()
   {
      int a,b=100,c=1000;
      a=b||c;
      printf("a=%d",a);
   }
由这个程序运行结果为 a=1,可以清楚地知道,因为"b||c"的逻辑正确(不管把b,c改成多少),所以"b||c"的结果为 1,然后把1赋值给a,这样运算也符合书本上的运算优先级,先 || 再 =
照这个道理,第一第二题中的 z 应该是 1 才对啊!结果不是,为什么啊!!!????????
从哪里运算先啊!运算的过程谁能解释清楚吗?、
下面二题呢?过程???
还是不明白啊!!!
有没有人能没有矛盾地、合理地、系统地回答啊,
不要牵强的凑成答案给我
谢谢!
2009-11-24 19:24
快速回复:搞不懂,全是i++问题!
数据加载中...
 
   



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

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