Fundamentals of Programming
lecture 19
Pointers and Arrays,
Pointer Arithmetic
Array arguments are addresses
Array arguments vs Pointers
Array arguments vs Pointers
The following are equivalent
Arrays vs. Pointers
Arrays vs. Pointers
Arrays vs. Pointers
Arrays vs. Pointers
Arrays vs. Pointers
Arrays vs. Pointers
Arrays vs. Pointers
Arrays vs. Pointers
Arrays vs. Pointers
Arrays vs. Pointers
pointerarray7.c
Arrays vs. Pointers
Arrays vs. Pointers
Arrays vs. Pointers
Arrays vs. Pointers
Arrays vs. Pointers
Arrays vs. Pointers
Arrays vs. Pointers
Arrays vs. Pointers
pointerarray10.c pointers and arrays are the same right?
Arrays vs. Pointers
Arrays vs. Pointers
Arrays vs. Pointers
Arrays vs. Pointers
pointerarray11.c
Arrays vs. Pointers
pointerarray11.c
somehow, similar to int * const p;
Arrays vs. Pointers: size
Arrays vs. Pointers: size
Arrays vs. Pointers: size
pointerarray12.c
Addressed are stored in 8 bytes in
Arrays vs. Pointers: size
Arrays vs. Pointers: size
pointerarray12.c
Addressed are stored in 4 bytes in
Array arguments: size
Array arguments: size
Array arguments: size
pointerarray14.c
Pointer Arithmetic
Pointer Arithmetic
Pointer Arithmetic
pointerarithmetic1.c
Pointer arithmetic: pointer + integer
Pointer arithmetic: pointer + integer
pointerarithmetic2.c
4 3 2 1
2012 2008 2004 a = 2000
5 Memory
2016
Pointer arithmetic: pointer + integer
pointerarithmetic2.c
4 3 2 1
2012 2008 2004 a = 2000
Memory
2016 p = 2000
Pointer arithmetic: pointer + integer
pointerarithmetic2.c
4 3 2 1
2012 2008 2004 a = 2000
5 Memory
2016 p = 2000
p+1 = ?
p+2 = ?
Pointer arithmetic: pointer + integer
pointerarithmetic2.c
4 3 2 1
2012 2008 2004 a = 2000
Memory
2016 p = 2000
p+1 = 2004
p+2 = 2008
Pointer arithmetic: pointer + integer
pointerarithmetic2.c
4 3 2 1
2012 2008 2004 a = 2000
5 Memory
2016 p = 2000
p+1 = 2004
p+2 = 2008
The precedence table
*p+i
*(p+i)
pointer definition
pointer definition
pointer definition
pointer definition
pointer arithmetic & arrays
pointer arithmetic & arrays
pointerarithmetic5.c pointerarithmetic6.c
pointer arithmetic & arrays
a[0] ≡ *a a[i] ≡ *(a+i)
pointerarithmetic5.c pointerarithmetic6.c
pointer arithmetic & arrays
pointer arithmetic & arrays
pointerarithmetic8.c
Exercise
Exercise
Subtracting two pointers
int a[10];
int *p = a;
int *q = &a[6];
int i = q - p;
Subtracting two pointers
int a[10];
int *p = a;
int *q = &a[6];
int i = q - p;