Langsung ke konten utama

Iklan





Pre-increment atau Pre-decrement pada Bahasa C

Pada bahasa C, pre-increment (atau pre-decrement) dapat digunakan sebagai l-value, tetapi post-increment (atau post-decrement) tidak dapat digunakan sebagai l-value.

Contoh, program berikut akan mencetak nilai a=20 (++a digunakan sebagai I-value).

// Ilustrasi program untuk

// Pre-increment (atau

// pre-decrement) 

#include <cstdio> 

 

int main() 

int a = 10

++a = 20;

 

printf("a = %d", a); 

getchar(); 

 

return 0

}

Output:
a=20

Program sebelumnya dapat berfungsi dengan baik jika dikompilasi oleh kompilator, namun program selanjutnya akan gagal dikompilasi karena kesalahan "non-Ivalue in assignment" (a++ digunakan sebagai I-value)

// Ilustrasi program bahasa C

// untuk Post-increment (atau

// post-decrement) 

#include <cstdio> 

 

int main() 

int a = 10

a++ = 20; // error 

 

printf("a = %d", a); 

getchar(); 

 

return 0

}

Output:
prog.cpp: In function 'int main()':
prog.cpp:6:5: error: lvalue required as left operand of assignment
 a = 20; // error 
     ^

Kenapa ++a dapat berbeda terhadap a++ sebagai l-value?
Hal tersebut dapat terjadi karena ++a mengembalikan l-value, yang pada dasarnya merupakan referensi untuk nilai variabel yang dapat diberikan lebih lanjut seperti halnya variabel biasa. Juga dapat ditetapkan sebagai nilai referensi:

int &ref = ++a; // valid
int &ref = a++; // invalid

Namun, jika digunakan nilai a++ pada program, hal tersebut tidak langsung akan meningkatkan nilai dari variabel a, sederhananya nilai a dapat bertambah setelah pernyataan (++) berikutnya, setelah nilai a dieksekusi. 

int a = 10;

// Dalam kompilasi program, a++ diganti dengan nilai a yang merupakan r-value:
10 = 20; // Invalid

// Nilai a increment
a = a + 1;

Inilah alasan kenapa nilai a++=20 tidak dapat bekerja jika sebuah program dijalankan dengan nilai tersebut.


Iklan

Komentar

  1. Apa perbedaan antara operator increment dan operator decrement pada bahasa C?

    BalasHapus
    Balasan
    1. Operator increment digunakan untuk meningkatkan nilai satu per satu dari suatu variabel, sedangkan operator decrement bekerja secara berlawan daripada operator increment.

      Hapus
  2. Apa yang dimaksud dengan operator pre-increment pada bahasa pemrograman C?

    BalasHapus
    Balasan
    1. Operator pre-increment (++i) menetapkan nilai sebelum nilai tersebut dimasukkan ke dalam variabel, atau nilai telah bertambah satu terlebih dahulu baru kemudian disimpan ke variabel.

      Hapus
  3. Apa yang dimaksud dengan operator post-increment pada bahasa pemrograman C?

    BalasHapus
    Balasan
    1. Operator post-increment (i++) menetapkan nilai setelah nilai tersebut dimasukkan ke dalam variabel, atau nilai disimpan dulu ke variabel baru mengalami penambahan nilai +1.

      Hapus

Posting Komentar

Respon komentar 7 x 24 jam, so please be patient :D