Langsung ke konten utama

Iklan





Inisialisasi Variabel Static dan Global pada Bahasa C

Perkirakan hasil keluaran dari program bahasa C berikut ini:

// PROGRAM 1

#include <stdio.h>

#include <stdlib.h>

 

int main(void)

{

static int *p = (int*)malloc(sizeof(p));

*p = 10;

printf("%d", *p);

}


// PROGRAM 2

#include <stdio.h>

#include <stdlib.h>

 

int *p = (int*)malloc(sizeof(p));

 

int main(void)

{

*p = 10;

printf("%d", *p);

}

Kedua program diatas tidak dapat dikompilasi pada bahasa C. Jika dilakukan kompilasi dengan bahasa C maka akan didapat hasil kompilasi error.

Pada bahasa C, variabel static dan variabel global harus diinisialisasi oleh kompilator itu sendiri. Jika tidak, maka harus diinisialisasi dengan sebuah nilai konstanta.

Catatan: pada program diatas jika dikompilasi dan dijalankan dalam bahasa C++ maka program dapat berjalan dengan baik dan menghasilkan keluaran 10.

Untuk latihan, perkirakan hasil keluaran hasil program berikut dengan menggunakan bahasa C dan C++.

#include <stdio.h>

 

int fun(int x)

{

return (x+5);

}

 

int y = fun(20);

 

int main()

{

printf("%d ", y);

}



Iklan

Komentar

  1. Materi yang disampaikan masih kurang lengkap, mohon untuk dilengkapi lagi supaya bisa lebih paham

    BalasHapus
    Balasan
    1. Selalu, dan sedang dalam proses perbaikan secara berkala.

      Hapus
  2. Apa yang dimaksud dengan inisialisasi?

    BalasHapus
    Balasan
    1. Dalam pemrograman komputer, inisialisasi adalah proses penetapan nilai awal untuk objek atau variabel data. Konstruksi pemrograman yang melakukan inisialisasi biasanya disebut penginisialisasi atau initializer.

      Hapus
  3. Apa manfaat proses inisialisasi pada pembuatan program?

    BalasHapus
    Balasan
    1. Proses penginisialisasian variabel dapat mencegah bug pada saat membuat program. Jika variabel adalah jenis referensi, maka dengan melakukan proses inisialisasi pada proses pembuatan program tersebut dapat terhindar dari kesalahan referensi null dikemudian hari.

      catatan: variabel jenis apapun yang memiliki nilai default bukan null akan menggunakan beberapa memori untuk menyimpan nilai default tersebut.

      Hapus

Posting Komentar

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