a++和++a区别啊

还有问下b=a++和b=++a b*a++ b*++a运算顺序

第1个回答  2013-01-08
自增运算符与自减运算符的使用顺序取决于具体的编译器,有的编译器运算顺序是自右向左,有的是自左向右,没有很明显的区别。如果不是必要的话,建议使用++a或a=a+1;这样可避免因编译器的不同而导致无法取得预期结果。
如果按自右至左的顺序(VC):
a++/*先让a自增再调用a的值*/
++a/*先调用a的值再让a自增*/
乘法运算符的优先顺序在自增或自减运算符只后,所以先进行自增或自减运算
希望可以帮助到你
第2个回答  2008-08-08
确实有不可以通用的情况
1.啊比较书面化,呀则比较口语化
比如我们平常受到惊吓,会脱口而出“我的妈呀”却不会说“我的妈啊”
但朗诵“祖国啊”就不宜朗诵成“祖国呀”。
2.表感叹语气时,也有不同。
比如“啊!多么巍峨的高山”表示的惊叹。
但是“呀!多么巍峨的高山”则更多的表示惊奇。
(你得弄明白惊叹和惊奇的区别)
还有因为读音的关系造成的区别等。
至于很多细微的变化则要靠你在生活中慢慢体会,一定会有收获的。
第3个回答  2012-03-24
因为没有说明a的定义,这里看问题推测应该是个指针
a++表示a指向下个地址,例如a如果当前指向数组num[0]的地址,那么a++后,当再次使用a时,其应该指向了数组num[1]的地址了;
*a++表示取指针a指向的地址中存放的内容,然后给指针a++令其指向下一个地址,如上例a指向num[0],而数组num[0]中的内容是0的话,那么,*a++的值应该为0,而执行此语句后对应的a应该指向了数组num[1]对应的地址了;
也可以这样说:*a++相当于先取当前a指针指向的地址中内容,然后进行a++,而a++单是对a指向的地址向后移动1个单位而已;
第4个回答  2013-01-08
b=a++,先赋值b=a,再现算a+1

b=++a,先求a+1,再赋值b=a

b*a++,先求b*a,再算a+1

b*++a,先算++a,再算b*(++a)
第5个回答  2013-01-08
a++是先赋值再加1,++a是先加1再赋值。