三个词:结合性,单目,双目。
急求,谢谢
1 ç»åæ§æçæ¯è¿ç®ç¬¦åºç°çæ¶åï¼ä¸åªè¾¹çæä½æ°ç»åè¿è¡è¿ç®ã
æ¯å¦é»è¾éè¿ç®å°±æ¯å³ç»åï¼ä¼ä¸æä½ç¬¦!å³ä¾§ç表达å¼è¿è¡è¿ç®ã
2 åç®åç®æçæ¯è¿ç®ç¬¦åºç°æ¶åä¸è¿ç®ç表达å¼ä¸ªæ°ã
åç®æ¯åªæä¸ä¸ªæä½æ°ï¼å³åªåä¸ä¸ªè¡¨è¾¾å¼æå ³ï¼æ§è¡è¿ç®ï¼æ¯å¦é»è¾é(!), ä½æä½çåå(~)è¿ç®çã
åç®æ¯æè¿ç®ç¬¦ä¸¤è¾¹ç表达å¼åä¼åä¸è¿ç®ï¼æ¤ç±»è¿ç®ç¬¦å¨C++ä¸æ¯æå¤çï¼å æ¬æ°å¦è¿ç®(+=*/%),é»è¾è¿ç®(&&,||), ä½è¿ç®(&,^,|)çã
é¤æ¤å¤ï¼C++ä¸è¿åå¨ä¸ç®è¿ç®ç¬¦?:ï¼ è¿ç®ç¬¦ä¸é´å两边çä¸ä¸ªè¡¨è¾¾å¼åä¼åä¸è¿ç®ï¼å½¢å¼ä¸º
expr1?expr2:expr3ã
æ¯å¦é»è¾éè¿ç®å°±æ¯å³ç»åï¼ä¼ä¸æä½ç¬¦!å³ä¾§ç表达å¼è¿è¡è¿ç®ã
2 åç®åç®æçæ¯è¿ç®ç¬¦åºç°æ¶åä¸è¿ç®ç表达å¼ä¸ªæ°ã
åç®æ¯åªæä¸ä¸ªæä½æ°ï¼å³åªåä¸ä¸ªè¡¨è¾¾å¼æå ³ï¼æ§è¡è¿ç®ï¼æ¯å¦é»è¾é(!), ä½æä½çåå(~)è¿ç®çã
åç®æ¯æè¿ç®ç¬¦ä¸¤è¾¹ç表达å¼åä¼åä¸è¿ç®ï¼æ¤ç±»è¿ç®ç¬¦å¨C++ä¸æ¯æå¤çï¼å æ¬æ°å¦è¿ç®(+=*/%),é»è¾è¿ç®(&&,||), ä½è¿ç®(&,^,|)çã
é¤æ¤å¤ï¼C++ä¸è¿åå¨ä¸ç®è¿ç®ç¬¦?:ï¼ è¿ç®ç¬¦ä¸é´å两边çä¸ä¸ªè¡¨è¾¾å¼åä¼åä¸è¿ç®ï¼å½¢å¼ä¸º
expr1?expr2:expr3ã
温馨提示:答案为网友推荐,仅供参考
第1个回答 2011-07-06
单目只得是运算符边只有1个变量比如
int x;
!x ;
!就是一个单目运算符
双目就是2变都是变量
int x,y;
x<y;
<就是一个双目运算符
结合性是抄来的自己看看把
在标准C语言的文档里,对操作符的结合性并没有作出非常清楚的解释。一个满分的回答是:它是仲裁者,在几个操作符具有相同的优先级时决定先执行哪一个。
每个操作符拥有某一级别的优先级,同时也拥有左结合性或右结合性。优先级决定一个不含括号的表达式中操作数之间的“紧密”程度。例如,在表达式a*b+c中,乘法运算的优先级高于加法运算符的优先级,所以先执行乘法a*b,而不是加法b+c。
但是,许多操作符的优先级都是相同的。这时,操作符的结合性就开始发挥作用了。在表达式中如果有几个优先级相同的操作符,结合性就起仲裁的作用,由它决定哪个操作符先执行。像下面这个表达式:
int a,b=1,c=2;
a=b=c;
我们发现,这个表达式只有赋值符,这样优秀级就无法帮助我们决定哪个操作先执行,是先执行b=c呢?还是先执行a=b。如果按前者,a=结果为2,如果按后者,a的结果为1。
所以的赋值符(包括复合赋值)都具有右结合性,就是说在表达式中最右边的操作最先执行,然后从右到左依次执行。这样,c先赋值给b,然后b在赋值给a,最终a的值是2.类似地,具有左结合性的操作符(如位操作符“&”和“|”)则是从左至右依次执行。
结合性只用于表达式中出现两个以上相同优先级的操作符的情况,用于消除歧义。事实上你会注意到所有优先级相同的操作符,他们的结合性也相同。这是必须如此 的,否则结合性依然无法消除歧义,如果在计算表达式的值时需要考虑结合性,那么最好把这个表达式一分为二或者使用括号。
int x;
!x ;
!就是一个单目运算符
双目就是2变都是变量
int x,y;
x<y;
<就是一个双目运算符
结合性是抄来的自己看看把
在标准C语言的文档里,对操作符的结合性并没有作出非常清楚的解释。一个满分的回答是:它是仲裁者,在几个操作符具有相同的优先级时决定先执行哪一个。
每个操作符拥有某一级别的优先级,同时也拥有左结合性或右结合性。优先级决定一个不含括号的表达式中操作数之间的“紧密”程度。例如,在表达式a*b+c中,乘法运算的优先级高于加法运算符的优先级,所以先执行乘法a*b,而不是加法b+c。
但是,许多操作符的优先级都是相同的。这时,操作符的结合性就开始发挥作用了。在表达式中如果有几个优先级相同的操作符,结合性就起仲裁的作用,由它决定哪个操作符先执行。像下面这个表达式:
int a,b=1,c=2;
a=b=c;
我们发现,这个表达式只有赋值符,这样优秀级就无法帮助我们决定哪个操作先执行,是先执行b=c呢?还是先执行a=b。如果按前者,a=结果为2,如果按后者,a的结果为1。
所以的赋值符(包括复合赋值)都具有右结合性,就是说在表达式中最右边的操作最先执行,然后从右到左依次执行。这样,c先赋值给b,然后b在赋值给a,最终a的值是2.类似地,具有左结合性的操作符(如位操作符“&”和“|”)则是从左至右依次执行。
结合性只用于表达式中出现两个以上相同优先级的操作符的情况,用于消除歧义。事实上你会注意到所有优先级相同的操作符,他们的结合性也相同。这是必须如此 的,否则结合性依然无法消除歧义,如果在计算表达式的值时需要考虑结合性,那么最好把这个表达式一分为二或者使用括号。
第2个回答 2011-07-06
结合性:运算符优先级别相同时,自左往右还是自右往左,比如单目运算符是自右向左
单目运算:某些运算符只要一个操作数就能进行运算,如自增++自减 --
双目运算:运算符需要两个操作数,大多数运算符都这样,如:> < + - * / %本回答被提问者采纳
单目运算:某些运算符只要一个操作数就能进行运算,如自增++自减 --
双目运算:运算符需要两个操作数,大多数运算符都这样,如:> < + - * / %本回答被提问者采纳