5/10/2009 1 Arrays and Pointer Ve 280 Programming and Introductory Data Structures Arrays and Pointers On to Arrays Data Types we’ve seen so far… y “atoms”: types with singleton values. y For example, something of type “int” holds one “integer”. y Something of type “char” holds one character. y “aggregate” types: types that hold “sets” of values where each value is of some type. y When all values have the same type, we call it a “homogeneous” aggregate, otherwise it is “heterogeneous”. y These are sometimes also called “container” types, because they contain other types. y The two we've seen so far, in the context of project 2, are lists and trees: each holds a collection of integers. On to Arrays Revisiting Lists y Lists have an important restriction (i.e. you cannot talk about an arbitrary element of a list). You can only talk about “the first element” and “the rest of the list”. y We say such a structure is “linked”; you have to move from one link to the next link to the next. y For example, suppose we have the following list: ( 1 2 3 4 ) y To talk about element “4”, you have to call list_rest three times (to skip past 1, 2, and 3), and then call list_first. y Lists have an important advantage too: y Because they are defined recursively, there is no "maximum-sized" list. y A list can grow as large as it needs to be (assuming the On to Arrays Revisiting Lists A list can grow as large as it needs to be (assuming the resources of the computer are infinite). Arrays The C++ array structure y In contrast to a list, C++ has a structure called an array . y An array is a fixed-sized, indexed, homogeneous aggregate type (a collection of items, all of the same type.) y To declare and define an array of four integers (the same size as our list above), we would say the following: int array[4]; Arrays The C++ array structure y For comparison purposes, let's also declare and define an integer, foo: int foo; int array[4]; y The environment that we get when we do this is: foo: array:

This
preview
has intentionally blurred sections.
Sign up to view the full version.

5/10/2009 2 Arrays Question: The C++ array structure int foo; int array[4]; y What are the contents of “array” after this declaration? foo: array: Arrays Initializing an array y You can also initialize the contents of an array in one line – just like with an int. However, we need some sort of notation to specify a set of numbers: int foo = 7; int array[4] = { 1, 2, 3, 4 }; y The corresponding environment would look like this: foo: array: 7 4 3 2 1 Arrays Initializing an array y You can also initialize the contents of an array in one line – just like with an int. However, we need some sort of notation to specify a set of numbers: int foo = 7; int array[4] = { 1, 2, 3, 4 }; This is called a “static initializer”. y

This is the end of the preview.
Sign up
to
access the rest of the document.