谢谢你帮我回答,在问下++ 优先级比= 高为什么不先运算++啊,最后一步C为什么又是1了 第三步的时候C=0啊,我用C语言算出来实际d=-2啊怎么和你算的不一样。
追答首先第一个问题,++优先级最高,但是规定,如果++为后缀的时候,先算其他所有的式子,再算++。所以,如果++后缀,就先算=了。
第二个问题,实在对不起,我看错了,还有一点我刚才又查了查,并且运行了一下,所以,我误导了你,现在要要纠正一下。是在对不起。我重新说一下第三步,首先看括号里面的,先运算括号里面的“a++”和“++b”,但是这里由于a++为后缀,所以虽然有括号,但是也要最后算,所以算最后一大步时候,是这样算的,先算++b,结果b=7,然后算d=a-b+c,也就是d=5-7+0,结果d=-2,然后最后算a++和c--,结果a=6,c=-1,所以你得到的数最后为a=6,b=7,c=-1,d=-2.这回没错了,是在对不起你,误导你了。这次我实际运行了一下,这个结果和过程是绝对没错的了。对不起啊。
谢谢你,在问下()得优先级比++的高,应该要强制先运算括号内的啊
追答对啊,先算++,但是a++的效果就是,先算整个式子,所以先算整个式子,我刚学的时候也理解不了,后来一点一点就明白了。你可以这么理解,你先算()里面。于是你算里面的时候发现,里面有++的后缀,所以你就要算完所有的,再算()中的++后缀。其实你算外面的那些东西,就是再算++的过程,因为++规定,最后算他。你不算其他的,怎么算他呢,你说是吧。所以你可以把算外面理解成,是你先算括号里面的++的,过程。
这样说,你可能不太明白,我给你比喻一下。就好像,你在一大堆琐事里面,有一个非常重要的事情,要先做,这就是括号里面的东西。但是你发现,要把这件事做成功,你还要先做成其他的不是很重要的事情,这就是后缀的作用。也就是说你在做其他不重要的事情的时候,其实是已经在做这件重要的事情了。只不过是在间接地做。
++或是--,后缀的定义就是,先做完其他操作后,再做这项+1或是-1的操作。这本来就是两个要求,第一步,先做完其他的操作,第二步才是做+1或是-1操作。你不能单纯的把他理解成是+1或是-1的操作。
所谓的优先级是先算哪个的问题。你能看见()先算,没错。但是当你先算括号内时,发现是自加或自荐后缀,所以由于上述的这个运算的双重要求,所以进行整个算式的计算后,最后运算这个式子。也就是说,让你先算其他的东西的,不是因为()优先级低,而是因为()内的++运算性质决定的。
希望能帮助到你,对于这个自加运算和自减运算,如果你还理解不了,就继续问我,不过建议你自己,调试一段小程序试一试。
非常非常谢谢,在问下最后一个问题如果最后一个算式我把括号拿掉如d=a++-(++b)+c--;这个用小程序算也是一样的结果,那为什么要加括号呢?
追答你这个问题,其实我当初也问过。这只是个题,为了帮助你理解优先级和自加运算性质区别的,所以加了括号。在真正编程时候,一般是不会这么写的。只是帮助你理解而已,没有特殊的含义的。相比之下,你理解自加运算了吗?我知道我说的也许有点抽象,但是希望能帮到你。因为我当初学的时候,就在这里费了很大劲,没有人愿意给我详细讲讲,呵呵,所以如果你还是不懂,就告诉我,我留下qq,咱们两个直接交流,应该会有帮助。
++ --和+ - =优先级一样吗
追答不一样啊++ --()[]什么最高
+-号的比=高
这个东西挺多的,最好去http://wenku.baidu.com/view/f57f4e10f18583d04964594f.html
这个是符号优先级的百度文库你可以去看看
我用C语言算出来 实际d=-2啊和你的不一样啊
追答哪第3步就是d=5-7+0
这步的优先级我也算错了
a++是运行后++
++b是++再运行
c同a一样