Вы находитесь на странице: 1из 7

Department of Computer and Information Science,

School of Science, IUPUI

CSCI 230

Arrays
Declarations
Dale Roberts, Lecturer
IUPUI
droberts@cs.iupui.edu

Dale Roberts

Arrays
Array
Group of consecutive memory locations
Same name and type, ex: an array of integers

Name of array (Note that all


elements of this array have the
same name, my_array)

To refer to an element, specify


Array name
Position number of particular element in the array

Format:
array_name[ position number ]

First element at position 0


n element array named c:

c[ 0 ], c[ 1 ]...c[ n 1 ]
Example: int my_array[12]
my_array[0]= -45 value stored

my_array[0]

-45

my_array[1]

my_array[2]

my_array[3]

72

my_array[4]

1543

my_array[5]

-89

my_array[6]

my_array[7]

62

my_array[8]

-3

my_array[9]

Position number must be an integer number or an my_array[10]


integer expression
my_array[11]

Example:

my_array[1.5] ERROR!!
my_array[i+j] valid if i and j are integers

6453
78

Position number of the element


within array my_array

Dale Roberts

Arrays (cont.)
Array elements are like normal variables
my_array[8] = -3;
scanf("%d", &my_array[8]); printf("%d",my_array[8]);
Perform operations in subscript. If x equals 3:
my_array[ 5 - 2 ] == my_array[ 3 ] == my_array[ x ]

Declaring Arrays
When declaring arrays, specify
Name
Type of array
Number of elements: arrayType
arrayName[numberOfElements];
Examples:

int c[ 100 ]; /* reserve memory sufficient enough to store 100


elements of type integer */

float myArray[ 3284 ];

Dale Roberts

Arrays (cont.)
Declaring multiple arrays of same type: format similar to regular variables
Example: int b[ 100 ], x[ 27 ];

Arrays may be declared to contain other data types


Example: int a[ 100 ];
float b[ 100 ];
char c[ 100 ]; /* Strings are stored by using character arrays */
Example:
#include <stdio.h>
/* a simple program that uses arrays */
main(
{
int i, array_int[100];
for (i=0; i<100; i++)
array_int[i]=0;
for (i=0; i<100; i++)
printf(element %d: %d\n, i, array_int[i]);
}

Dale Roberts

Arrays (cont.)
Initializers
int n[5] = {1, 2, 3, 4, 5};
Example: main()
{
int i, a[10]={1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
for (i=0; i<10; i++)
printf(Element: %d\n, a[i]);
}

If there are fewer initializations than elements in the array, then the
remaining elements are automatically initialized to 0.

int n[5] = {0}


/* All elements 0 */
int a[10] = {1, 2}
/* a[2] to a[9] are initialized to zeros */
int b[5] = {1, 2, 3, 4, 5, 6}
/* syntax error */

C arrays have no bounds checking


If size omitted, initializers determine it
int n[ ] = { 1, 2, 3, 4, 5 };

/* 5 initializers, therefore 5 element array */

Scalable Arrays: a better programming style


#define SIZE 10
int c[SIZE]; /* defines a symbolic constant size with value 10 */

Dale Roberts

Arrays (cont.)
Example:
#include <stdio.h>
#define SIZE 100
main()
{
int i, a[SIZE];
int sum = 0;

for (i=0; i < SIZE; i++)


sum = sum + a[i];
printf(sum: %d\n, sum);
}

Dale Roberts

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

/* Fig. 6.8: fig06_08.c


Histogram printing program */
#include <stdio.h>
#define SIZE 10
int main()
{
int n[ SIZE ] = { 19, 3, 15, 7, 11, 9, 13, 5, 17, 1 };
int i, j;

1. Initialize array

printf( "%s%13s%17s\n", "Element", "Value", "Histogram" );

2. Loop

for ( i = 0; i <= SIZE - 1; i++ ) {


printf( "%7d%13d
", i, n[ i ]) ;
for ( j = 1; j <= n[ i ]; j++ )
printf( "%c", '*' );
printf( "\n" );
}
return 0;
}

/* print one bar */

3. Print
Program output
Element
0
1
2
3
4
5
6
7
8
9

Value
19
3
15
7
11
9
13
5
17
1

Histogram
*******************
***
***************
*******
***********
*********
*************
*****
*****************
*

Dale Roberts

Вам также может понравиться