• Tidak ada hasil yang ditemukan

Fundamentals of Programming

N/A
N/A
Protected

Academic year: 2024

Membagikan "Fundamentals of Programming"

Copied!
41
0
0

Teks penuh

(1)

Fundamentals of Programming

session 23

Introduction to Pointers

(2)

What is a Pointer?

(3)

What is a Pointer?

(4)

What is a Pointer?

(5)

What is a Pointer?

-101 1204

2100 2096 2092 2088

Memory

int i = 1204;

int j = -101; j

i

(6)

What is a Pointer?

-101 1204

2100 2096 2092 2088

Memory

int i = 1204;

int j = -101;

printf("%u\n", &i);

j i

i j &i &j 1204 -101 2088 2092

(7)

What is a Pointer?

-101 1204

2100 2096 2092 2088

2088 Memory

int i = 1204;

int j = -101; j

i

2108

(8)

What is a Pointer?

-101 1204

2100 2096 2092 2088

2088 Memory

int i = 1204;

int j = -101; j

i

2108

(9)

What is a Pointer?

-101 1204 Memory

int i = 1204;

int j = -101; j

i

(10)

What is a Pointer?

-101 1204

2100 2096 2092 2088

2088 Memory

int i = 1204;

int j = -101;

int *p;

p = &i;

j i

2108 p

(11)

What is a Pointer?

-101 1204

2100 2096 2092 2088

2088 Memory

int i = 1204;

int j = -101;

int *p;

p = &i;

j i

2108 p i p &i &p

? ? ? ?

(12)

What is a Pointer?

-101 1204

2100 2096 2092 2088

2088 Memory

int i = 1204;

int j = -101;

int *p;

p = &i;

j i

2108 p i p &i &p

1204 ? ? ?

(13)

What is a Pointer?

-101 1204

2100 2096 2092 2088

2088 Memory

int i = 1204;

int j = -101;

int *p;

p = &i;

j i

2108 p i p &i &p

1204 2088 ? ?

(14)

What is a Pointer?

-101 1204

2100 2096 2092 2088

2088 Memory

int i = 1204;

int j = -101;

int *p;

p = &i;

j i

2108 p i p &i &p

1204 2088 2088 ?

(15)

What is a Pointer?

-101 1204

2100 2096 2092 2088

2088 Memory

int i = 1204;

int j = -101;

int *p;

p = &i;

j i

2108 p i p &i &p

1204 2088 2088 2108

(16)

What is a Pointer?

-101 1204

2100 2096 2092 2088

2088 Memory

int i = 1204;

int j = -101;

int *p;

p = &i;

j i

2108 p i p &i &p

1204 2088 2088 2108

(17)

What is a Pointer?

1204

2100 2096 2092 2088

2088 Memory

int i = 1204;

int j = -101;

int *p;

p = &i;

j = *p;

j i

2108 p

i p &i &p *p

1204 2088 2088 2108 ?

(18)

What is a Pointer?

1204 1204

2100 2096 2092 2088

2088 Memory

int i = 1204;

int j = -101;

int *p;

p = &i;

j = *p;

j i

2108 p

i p &i &p *p

1204 2088 2088 2108 1204

(19)

What is a Pointer?

1204

?

2100 2096 2092 2088

? Memory

int i = 1204;

int j = -101;

int *p;

p = &i;

j = *p;

*p = -22;

j i

2108 p

i p &i &p *p

? ? ? ? ?

(20)

What is a Pointer?

1204 -22

2100 2096 2092 2088

2088

Memory

int i = 1204;

int j = -101;

int *p;

p = &i;

j = *p;

*p = -22;

j i

2108 p

i p &i &p *p

-22 2088 2088 2108 -22

(21)

Simulating by-reference argument passing

(22)

Simulating by-reference argument passing

(23)

Simulating by-reference arguments

x

p

Memory

(24)

multiple outputs

main:r main:q main:b main:a

divide:qp divide:b divide:a

Memory

divide:rp

(25)

Arguments are still by-value

main:r main:q main:b

divide:qp divide:b divide:a

Memory

divide:rp main:a

divide:rp

divide:qp divide:b divide:a

divide:rp divide:rp

(26)

Arguments are still by-value

main:r main:q main:b

divide:qp divide:b divide:a

Memory

divide:rp main:a

divide:rp

divide:qp divide:b divide:a

divide:rp divide:rp

(27)

Arguments are still by-value

main:r main:q main:b

divide:qp divide:b divide:a

Memory

divide:rp main:a

divide:rp

divide:qp divide:b divide:a

divide:rp divide:rp

(28)

use %p to print addresses

main:r main:q main:b

divide:qp divide:b divide:a

Memory

divide:rp main:a

divide:rp

divide:qp divide:b divide:a

divide:rp divide:rp

(29)

Example: Swapping

pointerfunc5_swap.c

(30)

constant pointers

(31)

constant pointers

(32)

constant pointers

(33)

constant pointers

(34)

constant pointers

(35)

constant pointers

(36)

constant pointers

(37)

constant pointers

(38)

constant pointers

(39)

constant pointers

(40)

constant pointers

(41)

constant pointers

same thing

Referensi

Dokumen terkait

( ∗ 1) Write declarations for the following: a function taking arguments of type pointer to charac- ter and reference to integer and returning no value; a pointer to such a function;

The main findings of the present study are (a) BSM- derived extension of Q-waves is greater in the case of inferior infarctions, (b) transmural necrosis is frequently present

A common alternative on Windows is MDI (multiple document interface), where the application has a single main window that manages multiple document windows within its central area.

Programs and their Execution Program in memory : sequence of instructions known to CPU The processorCPU works as follows, Step A: pick next instruction in the sequence.. Step B: get

A leading power factor is one in which the current leads the applied voltage by certain angle as shown in Figure 12-27 b.. A power factor correction capacitor is an example for a load

 The memory hierarchy system consists of tall storage devices employed in a computer system from the slow but high-capacity auxiliary memory to a relatively faster main memory, to an

LIST OF NOTATIONS A ARF B b COH DISADF DISDEFBF fa FP H h MC n P Q R Re R2 Area Aspect ratio factor Flood plain width to centre of main channel Half width of

The CSL program managed to deliver multiple outputs and outcomes, as follows: a teachers have gain a better understanding of the concept of learning assessment, such as task analysis