c yǔ yán de cāo zuò fú gòng yòu 15 gè yōu xiān jí, rú xià:
OperatorsAssociativity
()[]->.lefttoright
!~++--+-*(type)sizeofrighttoleft
*/%lefttoright
+-lefttoright
<<>>lefttoright
<<=>>=lefttoright
==!=lefttoright
&lefttoright
^lefttoright
|lefttoright
&&lefttoright
||lefttoright
?:righttoleft
=+=-=*=/=%=&=^=|=<<=>>=righttoleft
,lefttoright
yōu xiān jí cóng shàng dào xià yǐ cì dì jiǎn, zuì shàng miàn jù yòu zuì gāo de yōu xiān jí, dòu hào cāo zuò fú jù yòu zuì dī de yōu xiān jí。
suǒ yòu de yōu xiān jí zhōng, zhǐ yòu sān gè yōu xiān jí shì cóng yòu zhì zuǒ jié hé de, tā men shì dān mù yùn suàn fú、 tiáo jiàn yùn suàn fú、 fù zhí yùn suàn fú。 qí tā dedōu shì cóng zuǒ zhì yòu jié hé。
jù yòu zuì gāo yōu xiān jí de qí shí bìng bù suàn shì zhēn zhèng de yùn suàn fú, tā men suàn shì yī lèi tè shū de cāo zuò。 () shì yǔ hán shù xiāng guān, [] yǔ shù zǔ xiāng guān, ér - > jí . shì qǔ jié gòu chéng yuán。
qí cì shì dān mù yùn suàn fú, suǒ yòu de dān mù yùn suàn fú jù yòu xiāng tóng de yōu xiān jí, yīn cǐ zài wǒ rèn wéi de zhēn zhèng de yùn suàn fú zhōng tā men jù yòu zuì gāo de yōu xiān jí, yòu yóu yú tā mendōu shì cóng yòu zhì zuǒ jié hé de, yīn cǐ *p++ yǔ *(p++) děng xiào shì háo wú yí wèn de。
jiē xià lái shì suàn shù yùn suàn fú, *、 /、 % de yōu xiān jí dāng rán bǐ +、- gāo liǎo。
yí wèi yùn suàn fú jǐn suí qí hòu。
qí cì de guān xì yùn suàn fú zhōng, <<=>>= yào bǐ ==!= gāo yī gè jí bié, bù dà hǎo lǐ jiě。
suǒ yòu de luó ji cāo zuò fú dū jù yòu bù tóng de yōu xiān jí( dān mù yùn suàn fú chū wài,! hé ~)
luó ji wèi cāo zuò fú de " yǔ " bǐ " huò " gāo, ér " yì huò " zé zài tā men zhī jiān。
gēn zài qí hòu de && bǐ || gāo。
jiē xià lái de shì tiáo jiàn yùn suàn fú, fù zhí yùn suàn fú jí dòu hào yùn suàn fú。
zài C yǔ yán zhōng, zhǐ yòu 4 gè yùn suàn fú guī dìng liǎo yùn suàn fāng xiàng, tā men shì &&、 ||、 tiáo jiàn yùn suàn fú jí fù zhí yùn suàn fú。
&&、 || dōushì xiān jì suàn zuǒ biān biǎo dá shì de zhí, dāng zuǒ biān biǎo dá shì de zhí néng què dìng zhěng gè biǎo dá shì de zhí shí, jiù bù zài jì suàn yòu biān biǎo dá shì de zhí。 rú a=0&&b;&& yùn suàn fú de zuǒ biān wèi 0, zé yòu biān biǎo dá shì b jiù bù zài pàn duàn。
zài tiáo jiàn yùn suàn fú zhōng。 rú a?b:c; xiān pàn duàn a de zhí, zài gēn jù a de zhí duì b huò c zhī zhōng de yī gè jìn xíng qiú zhí。
fù zhí biǎo dá shì zé guī dìng xiān duì yòu biān de biǎo dá shì qiú zhí, yīn cǐ shǐ a=b=c=6; chéng wéi kě néng。
C++ yùn suàn fú yōu xiān jí
OperatorDescriptionExampleOverloadableGroup1(noassociativity)::ScoperesolutionoperatorClass::age=2;NOGroup2()Functioncallisdigit('1')YES()Memberinitalizationc_tor(intx,inty):_x(x),_y(y*10){};YES[]Arrayaccessarray=2;YES->Memberaccessfromapointerptr->age=34;YES.Memberaccessfromanobjectobj.age=34;NO++Post-incrementfor(inti=0;i<10;i++)cout<<i;YES--Post-decrementfor(inti=10;i>0;i--)cout<<i;YESconst_castSpecialcastconst_cast<type_to>(type_from);NOdynamic_castSpecialcastdynamic_cast<type_to>(type_from);NOstatic_castSpecialcaststatic_cast<type_to>(type_from);NOreinterpret_castSpecialcastreinterpret_cast<type_to>(type_from);NOtypeidRuntimetypeinformationcout«typeid(var).name();
cout«typeid(type).name();NOGroup3(right-to-leftassociativity)!Logicalnegationif(!done) … YESnotAlternatespellingfor!~Bitwisecomplementflags=~flags;YEScomplAlternatespellingfor~++Pre-incrementfor(i=0;i<10;++i)cout<<i;YES--Pre-decrementfor(i=10;i>0;--i)cout<<i;YES-Unaryminusinti=-1;YES+Unaryplusinti=+1;YES*Dereferenceintdata=*intPtr;YES&Addressofint*intPtr=&data;YESnewDynamicmemoryallocationlong*pVar=newlong;
MyClass*ptr=newMyClass(args);YESnew[]Dynamicmemoryallocationofarraylong*array=newlong[n];YESdeleteDeallocatingthememorydeletepVar;YESdelete[]Deallocatingthememoryofarraydelete[]array;YES(type)Casttoagiventypeinti=(int)floatNum;YESsizeofReturnsizeofanobjectortypeintsize=sizeoffloatNum;
intsize=sizeof(float);NOGroup4->*Memberpointerselectorptr->*var=24;YES.*Memberobjectselectorobj.*var=24;NOGroup5*Multiplicationinti=2*4;YES/Divisionfloatf=10.0/3.0;YES%Modulusintrem=4%3;YESGroup6+Additioninti=2+3;YES-Subtractioninti=5-1;YESGroup7<<Bitwiseshiftleftintflags=33<<1;YES>>Bitwiseshiftrightintflags=33>>1;YESGroup8<Comparisonless-thanif(i<42)… YES<=Comparisonless-than-or-equal-toif(i<=42)...YES>Comparisongreater-thanif(i>42)… YES>=Comparisongreater-than-or-equal-toif(i>=42)...YESGroup9==Comparisonequal-toif(i==42)...YESeqAlternatespellingfor==!=Comparisonnot-equal-toif(i!=42)… YESnot_eqAlternatespellingfor!=Group10&BitwiseANDflags=flags&42;YESbitandAlternatespellingfor&Group11^BitwiseexclusiveOR(XOR)flags=flags^42;YESxorAlternatespellingfor^Group12|Bitwiseinclusive(normal)ORflags=flags|42;YESbitorAlternatespellingfor|Group13&&LogicalANDif(conditionA&&conditionB)… YESandAlternatespellingfor&&Group14||LogicalORif(conditionA||conditionB)...YESorAlternatespellingfor||Group15(right-to-leftassociativity)?:Ternaryconditional(if-then-else)inti=(a>b)?a:b;NOGroup16(right-to-leftassociativity)=Assignmentoperatorinta=b;YES+=Incrementandassigna+=3;YES-=Decrementandassignb-=4;YES*=Multiplyandassigna*=5;YES/=Divideandassigna/=2;YES%=Moduloandassigna%=3;YES&=BitwiseANDandassignflags&=new_flags;YESand_eqAlternatespellingfor&=^=Bitwiseexclusiveor(XOR)andassignflags^=new_flags;YESxor_eqAlternatespellingfor^=|=BitwisenormalORandassignflags|=new_flags;YESor_eqAlternatespellingfor|=<<=Bitwiseshiftleftandassignflags<<=2;YES>>=Bitwiseshiftrightandassignflags>>=2;YESGroup17throwthrowexceptionthrowEClass(“ Message” );NOGroup18,Sequentialevaluationoperatorfor(i=0,j=0;i<10;i++,j++)… YES |