0% menganggap dokumen ini bermanfaat (0 suara)
98 tayangan9 halaman

Praktikum Pemrograman Pointer C

Teks tersebut merupakan hasil praktikum konsep pemrograman pointer yang meliputi 10 soal dengan ilustrasi alokasi memori dan perkiraan hasil eksekusi untuk setiap program."

Diunggah oleh

anggiadwi1907
Hak Cipta
© All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
98 tayangan9 halaman

Praktikum Pemrograman Pointer C

Teks tersebut merupakan hasil praktikum konsep pemrograman pointer yang meliputi 10 soal dengan ilustrasi alokasi memori dan perkiraan hasil eksekusi untuk setiap program."

Diunggah oleh

anggiadwi1907
Hak Cipta
© All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd

Nama : Anggia Dwi Putri Yulistin

NRP : 3123521028

Hasil Praktikum Konsep Pemrograman Pointer

Untuk setiap program di bawah ini,


– gambarkan ilustrasi alokasi memori dari setiap baris pernyataan yang diproses
– perkirakan hasil eksekusinya

1. main(){
int y, x = 87;
int *px;

px = &x;
\
y = *px;

printf("Alamat x = %p\n", &x);


printf("Isi px = %p\n", px);
printf("Isi x = %d\n", x);
printf("Nilai yang ditunjuk oleh px = %d\n", *px);
printf("Nilai y = %d\n", y);

Y
87

X 000000000062FE10
87

Px
000000000062FE10
perkiraan hasil eksekusi
Alamat x = 000000000062FE10
Isi px = 000000000062FE10
Isi x = 87
Nilai yang ditunjuk oleh px = 87

hasil output:

2. main(){

float *pu, nu;

double u = 1234.0;

pu = &u;

nu = *pu;

printf("Alamat dari u = %p\n", &u);

printf("Isi pu = %p\n", pu);

printf("Isi u = %lf\n", u);

printf("Nilai yang ditunjuk oleh pu = %f\n", *pu);

printf("Nilai nu = %f\n", nu);

}
U 1234.0

PU 0060FEF0

NU 0.0000

hasil perkiraan eksekusi

Alamat dari u = 0060FEF0


Isi pu = 0060FEF0
Isi u = 1234.0
Nilai yang ditunjuk oleh pu = 0.000000
Nilai nu = 0.000000

Hasil output:

3. main(){

float d = 54.5f, *pd;

printf("Isi d mula-mula = %g\n", d);

pd = &d;

*pd += 10;

printf("Isi d sekarang = %g\n", d);

}
D
54.5 64.5

Pd

Perkiraan hasil eksekusi:


Isi d mula-mula = 54.5
Isi d sekarang = 64.5

4. main(){

int z = 20, s = 30, *pz, *ps;

pz = &z;

ps = &s;

*pz += *ps;

printf("z = %d\n", z);

printf("s = %d\n", s);

Z 20 50

S 30

PZ

PS

hasil perkiraan eksekusi:

z = 50
s = 30
5. main(){
char c = 'Q', *cp = &c;

printf("%c %c\n", c, *cp);


c = '/';
printf("%c %c\n", c, *cp);
*cp = '(';
printf("%c %c\n", c, *cp);
}

D
‘Q’ ‘/’ ‘(’

Pd

Hasil perkiraan eksekusi:


QQ

//

((

6. main() {
int x = 1, y = 2, *ip;

ip = &x;
y = *ip;
*ip = 3;

printf(“x = %d, y = %d”, x, y);


}
X 1 3

Y 2 1

Ip

Perkiraan hasil eksekusi:

x = 3, y = 1

7. main(){
int i1, i2, *p1, *p2;

i1 = 9;
p1 = &i1;
i2 = *p1 / 2 – 2 * 3;
p2 = p1;

printf("i1=%d,i2=%d,*p1=%d,*p2=%d\n",i1,i2,*p1,*p2);
}

i1 9

i2 -2

P1

P2
Hasil perkiraan eksekusi:

i1=9,i2=-2,*p1=9,*p2=9

8. main() {
int count = 10, *temp, sum = 7;

temp = &count;
*temp = 32;
temp = ∑
*temp = count;
sum = *temp * 4;

printf("count=%d, *temp=%d, sum=%d\n", count,*temp, sum );


}

Count 10 32

Sum 7 32 128 Sum= *Temp*4


=32*4
Temp = 128

count=32, *temp=128, sum=128


9. main(){
int count = 13, sum = 9, *x, *y;

x = &count;
*x = 27;
y = x;
x = ∑
*x = count;
sum = *x / 2 * 3;
printf("count=%d, sum=%d, *x=%d, *y=%d\n", count,sum,*x,*y);
}

Count
13 27

Sum 9 27 39
Sum=*X/2*3

=27/2*3
X
=39

count=27, sum=39, *x=39, *y=27


10. int r, q = 7;
int go_crazy(int *, int *);
main() {
int *ptr1 = &q;
int *ptr2 = &q;
r = go_crazy(ptr1, ptr2);
printf("q=%d, r=%d, *ptr1=%d, *ptr2=%d\n",q,r,*ptr1,*ptr2);

ptr2 = &r;

go_crazy(ptr2, ptr1);
printf("q=%d, r=%d, *ptr1=%d, *ptr2=%d\n",q,r,*ptr1,*ptr2);
}

int go_crazy(int *p1, int *p2){

hasil perkiraan eksekusi

q=14, r=15, *ptr1=14, *ptr2=14

q=24, r=12, *ptr1=24, *ptr2=12

Anda mungkin juga menyukai