Pointer
Output? #include int x = 2; void misteri(int a, int b) { a = 2*x; b = y; y = a; } main() { int y; x = 5; y = 7; misteri(x, y); printf("%d %d\n", x, y); return 0; }
Output? #include void misteri(int a, int b, int *x, int *y) { *x = a * b; *y = 2 * a + 2 * b; } main() { int m, n; misteri(3, 5, &m, &n); printf("%d %d\n", m, n); return 0; }
Output? #include #define SIZE 4 main() { int a[][SIZE] = {{0,1,2,3}, {4,5,6}, {7,8,9,10} }; int *p = &a[0][0]; int *q = a[0]; int *r = a[1]; int *s = a[2]; printf("%d ", *(p + SIZE + 1) ); printf("%d ", p[SIZE + 1] ); printf("%d ", p[2 * SIZE + 1] ); printf("%d ", *(q + 2 * SIZE + 2) ); printf("%d ", *r ); printf("%d ", *(r - 2) ); printf("%d\n", s[3] ); return 0; }
Output? #include main() { int m = 99, *n; *n = 123; printf("%d %d\n", m, *n); return 0; }
Alokasi Memori Deklarasi pointer tidak secara otomatis mengalokasikan memori – Kecuali kalau ada inisialisasi nilai saat deklarasi Alokasi memori dapat dilakukan dengan fungsi: void *malloc (size_t size) Setelah tidak diperlukan, dapat dibebaskan dengan fungsi: void free(void *ptr)
Latihan 1 Alokasikan memori untuk 100 elemen integer. Elemen pertama ditunjuk oleh pointer p. Isi ruang memori tersebut dengan ketentuan: – Jika i genap = i – Jika i ganjil = -i dengan i adalah indeks elemen
Latihan 2 Buat sebuah fungsi yang menghitung keliling dan luas sebuah lingkaran dengan radius r
Latihan 3 Buat sebuah fungsi yang menjumlahkah dua buah array satu dimensi
Latihan 4 Buat sebuah fungsi untuk mentranspos sebuah array dua dimensi nxn