Aracılığıyla paylaş


Artırma ve azaltma işleçleri önek: ++ ve--

++ unary-expression
–– unary-expression

Notlar

Önek artýrma iþlecinin (++), işlenen; birine ekler Bu artan değer ifade sonucudur. İşlenen l değeri türü olmalıdır const. L değeri işlenen aynı türden sonucudur.

Önek azaltma işleci () öneki artýrma iþlecinin için işlenen bir küçültülür ve sonucu indirildiği düğümlerde bu değer paraleldir.

Önek işleci bir işlev bağımsız değişkeni uygulandığında, bağımsız değişkenin değeri ya işleve geçirilen önce olmasını garanti edilmez. Daha fazla bilgi için C++ standart 1.9.17 bölümüne bakın.

Önek ve sonek artırma ve azaltma işleçleri kendi işlenenleri etkiler. Aralarındaki en önemli fark, artırma veya azaltma ifadenin değerlendirmesi de yer aldığı durumdur. (Daha fazla bilgi için bkz: sonek artırma ve azaltma işleçleri.) İfadenin değeri işlenen değerinden farklı şekilde değer ifade değerlendirme kullanılmadan önce önek formunda artırma veya azaltma gerçekleşir. İfadenin değeri işlenen değeri ile aynı olacak şekilde ifade değerlendirme değer kullanıldıktan sonra sonek biçiminde artırma veya azaltma gerçekleşir. Örneğin, aşağıdaki baskı programı "++i = 6":

// expre_Increment_and_Decrement_Operators.cpp
// compile with: /EHsc
#include <iostream>

using namespace std;

int main() {
   int i = 5;
   cout << "++i = " << ++i << endl;
}

Tam sayı veya kayan türündeki bir işlenen ya 1 tamsayı değeri. Sonuç tipini işlenenin türü ile aynıdır. İşaretçi türünde bir işlenen hedeflediği nesnenin boyutuna göre ya. Artan bir işaretçi sonraki nesneye işaret eder; indirildiği düğümlerde işaretçi önceki nesneyi işaret eder.

Çünkü artırma ve azaltma işleçleri artırma veya azaltma işleçleri ile ifadelerin yan etkileri olan bir Önişlemci makro istenmeyen sonuçları olabilir. Bu örneði ele alalým:

// expre_Increment_and_Decrement_Operators2.cpp
#define max(a,b) ((a)<(b))?(b):(a)

int main()
{
   int i = 0, j = 0, k;
   k = max( ++i, j );
}

Makro genişletir:

k = ((++i)<(j))?(j):(++i);

i 'Den büyük veya eşit olması j ya da daha az j 1'de, iki kez artırılacağını.

Not

C++ satır içi işlevleri bunlar burada açıklananlara gibi yan etkileri ortadan kaldırdığı makrolara çoğu durumda tercih edilir ve dili hakkında tam tür denetimi yapmak izin vermek.

Ayrıca bkz.

Başvuru

Tekli operatörler ifadelerle

C++ işleçleri

Operatör önceliği ve ilişkilendirilebilirlik

Kavramlar

Önek artırma ve azaltma işleçleri