# Laboratory: Pointers, Revisited

Summary: We continue to explore pointers, particularly the relationship between pointers and arrays.

Prerequisites: Familiarity with pointers.

## Preparation

Finish the lab on pointers.

## Exercises

### Exercise 1: Addresses of Arrays

In exercise 3 of the lab on pointers, you added code to declare two arrays.

a. Add code to determine the address of element 0 of each of those arrays.

b. Add code to determine the address of element 1 of each of those arrays.

c. Add code to determine the address of element 2 of each of those arrays.

d. What do these results suggest about the organization of the arrays?

```  printf ("%s: %p (%u)\n", "anthill", (void *) a, (unsigned int) a);
```

f. What do you expect this to print out (relative to what you printed for element 0)?

### Exercise 2: Pointers and Arrays

a. Add the following lines to your `main` method after the declaration of `anthill`.

```  int *wombat = anthill;
```

b. What value do you expect to get when you print out `wombat`? (Express this relative to the value of `anthill[0]`.)

d. What value do you expect to get when you print out `wombat + 1`? (Express this relative to the value of `anthill[0]`.)

### Exercise 3: Arrays and Pointers, Revisited

a. Add the following code to initialize `anthill`.

```  int i;
for (i = 0; i < 9; i++)
anthill[i] = i;
anthill[9] = -1;
```

b. What do you expect the following code to do?

```  int *wombat = anthill;
while (*wombat >= 0)
{
printf ("%d\n", *wombat);
wombat++;
}
```

## History

Wednesday, 27 October 2010 [Samuel A. Rebelsky]

Monday, 14 March 2011 [Samuel A. Rebelsky]

Disclaimer: I usually create these pages on the fly, which means that I rarely proofread them and they may contain bad grammar and incorrect details. It also means that I tend to update them regularly (see the history for more details). Feel free to contact me with any suggestions for changes.

This document was generated by Siteweaver on Wed Mar 16 10:47:16 2011.
The source to the document was last modified on Wed Mar 16 10:47:14 2011.
This document may be found at `http://www.cs.grinnell.edu/~rebelsky/Courses/CSC161/2011S/Labs/pointers-revisited-lab.html`.
A PDF version of this document may be found at `http://www.cs.grinnell.edu/~rebelsky/Courses/CSC161/2011S/Labs/pointers-revisited-lab`

Samuel A. Rebelsky, rebelsky@grinnell.edu