回 帖 发 新 帖 刷新版面

主题:问一道简单的C++问题...

#include<iostream>
using namespace std;
void main()
{
 int a,b,c;
 a=6;b=c=4;
 if(a!=b)
  if(a!=c)
   if(1)
    cout<<(a-->2);
   else a++;
   else a+=a;
   cout<<a;
}
谁能把运算原理告诉我啊,特别是cout<<(a-->2);
谢谢啊

来源: http://www.programbbs.com/bbs/tree34-24904-134850.htm

回复列表 (共6个回复)

沙发

--优先级大于>
那a就先减1 然后跟2比

板凳

我觉得1楼的说法是错误的, 假如是(--a>2),你说的才是正确的! (a-->2) =(a>2)!

      关键对 --a,a-- 表达式的理解错误!前者是先加1,后计算,后者是先计算后自身减1!

3 楼


这个问题很简单,cout<<(a-->2)<<endl;指的就是a--的值与2比较大小,如果大于就输出1表示括号内正确,如果不大于就输出0表示括号内判断错误,又因为a=6,a--值也为6,不过a变为5了,a--和--a的效果是不同的

4 楼

我觉得应该是    6      
   因为他后面的那个  else  是多余的 ~~~~~~
  而前面那个   else   输出 a  的结果应该是   6

5 楼

我认为是5呀

6 楼

程序有问题

我来回复

您尚未登录,请登录后再回复。点此登录或注册