就是,例如:*和%;
x+a%3*(int)(x+y)%2/4
运算顺序是什么样的。
请一步步详细说明。(先运算什么,再运算什么。)
ããåç级çè¿ç®ç¬¦ï¼å å顺åºæç»åæ§æ¥è¿è¡ãä¸é¢ç代ç æå©äºç解ç»åæ§ã
ããint a,b=1,c=2;ããa=b=c;
ããä¸é¢ç代ç æ¯å æ§è¡b=cå¢?è¿æ¯å æ§è¡a=bãå¦ææåè ï¼a=ç»æ为2ï¼å¦ææåè ï¼açç»æ为1ãææçèµå¼ç¬¦ï¼å æ¬å¤åèµå¼ï¼é½å ·æå³ç»åæ§ï¼å°±æ¯å¨è¡¨è¾¾å¼ä¸æå³è¾¹çæä½æå æ§è¡ï¼ç¶åä»å³å°å·¦ä¾æ¬¡æ§è¡ãè¿æ ·ï¼cå èµå¼ç»bï¼ç¶åbå¨èµå¼ç»aï¼æç»açå¼æ¯2ã
ããææä¼å 级ç¸åçæä½ç¬¦ï¼å®ä»¬çç»åæ§ä¹ç¸åãè¿æ¯å¿ é¡»å¦æ¤çï¼å¦åç»åæ§ä¾ç¶æ æ³æ¶é¤æ§ä¹ï¼å¦æå¨è®¡ç®è¡¨è¾¾å¼çå¼æ¶éè¦èèç»åæ§ï¼é£ä¹æ好æè¿ä¸ªè¡¨è¾¾å¼ä¸å为äºæè 使ç¨æ¬å·ã
ããä¾ï¼
ã a=b+c+dãã=æ¯å³ç»åçï¼æ以å 计ç®(b+c+d)ï¼ç¶ååèµå¼ç»a
ãã+æ¯å·¦ç»åçï¼æ以å 计ç®(b+c)ï¼ç¶åå计ç®(b+c)+d
ããå¨Cè¯è¨ä¸æå°æ°è¿ç®ç¬¦å¨Cè¯è¨æ åä¸æ¯æè§å®è¡¨è¾¾å¼æ±å¼ç顺åºçï¼
ãã1ï¼&& å || è§å®ä»å·¦å°å³æ±å¼ï¼å¹¶ä¸å¨è½ç¡®å®æ´ä¸ªè¡¨è¾¾å¼çå¼çæ¶åå°±ä¼åæ¢ï¼ä¹å°±æ¯å¸¸è¯´ççè·¯ã
ãã2ï¼æ¡ä»¶è¡¨è¾¾å¼çæ±å¼é¡ºåºæ¯è¿æ ·è§å®çï¼
ããtest ? exp1 ï¼ exp2;
ããæ¡ä»¶æµè¯é¨åtestéé¶ï¼è¡¨è¾¾å¼exp1被æ±å¼ï¼å¦å表达å¼exp2被æ±å¼ï¼å¹¶ä¸ä¿è¯exp1åexp2两è ä¹ä¸åªæä¸ä¸ªè¢«æ±å¼ã
ãã3ï¼éå·è¿ç®ç¬¦çæ±å¼é¡ºåºæ¯ä»å·¦å°å³é¡ºåºæ±å¼ï¼å¹¶ä¸æ´ä¸ªè¡¨è¾¾å¼çå¼çäºæåä¸ä¸ªè¡¨è¾¾å¼çå¼ï¼æ³¨æéå·','è¿å¯ä»¥ä½ä¸ºå½æ°åæ°çåé符ï¼åéå®ä¹çåé符çï¼è¿æ¶å表达å¼çæ±å¼é¡ºåºæ¯æ²¡æè§å®çï¼
C规定了各种运算符的结合方向(结合性),算术运算符的结合方向为“自左至右”,即先左后右,因此a-b+c先执行a-b的运算,再执行加c的运算。结合性有“左结合性”和“右结合性”(赋值运算符为特例)。
所以你给出的例子的运算顺序为:
1. (int)(x+y)
2. a%3
3. (a%3)*(int)(x+y)
4. ((a%3)*(int)(x+y))%2
5. (((a%3)*(int)(x+y))%2)/4.
GAME OVER
呵呵,就是这样的。你自己根据优先级和结合性再自己判断一下吧。
我已经帮你在Visual C++上运行过了,没有错的!:-)放心!!呵呵, 我就是学这个的!本回答被提问者采纳
上式为先算(x+y),再类型转换,再算3*(int)(x+y),再算2/4 ,再算a%3*(int)(x+y),再就是a%3*(int)(x+y)%2/4,然后就是加法喽。