Arrays. Part 1. Array definition. One-dimensional arrays. Initializing array
Content
- 1. What is an array? Array definition
- 2. The definition of one-dimensional and multidimensional arrays.
- 3. Definition of one-dimensional array. Examples of descriptions of one-dimensional arrays
- 4. Access to the elements of one-dimensional array. Examples
- 5. How to define the size of a one-dimensional array?
- 6. Features of array processing by the compiler in C++. The boundaries of array
- 7. How does the array initialization in C++. Examples
- 8. Initialization of character arrays. Example
- 9. The assignment one array to another. Example
- 10. Definition of array the structures. Example
- Related topics
Search other websites:
1. What is an array? Array definition
Array – a set of variables of the same type. Access to these variables is carried out by the same name. This name is called the name of the array. Arrays are used for grouping related variables between themselves.
2. The definition of one-dimensional and multidimensional arrays.
Arrays can be one-dimentional and multidimentional. In the one-dimensional arrays, only one index is used to access an array element. In multidimensional arrays to access an element of the array are used multiple indexes.
3. Definition of one-dimensional array. Examples of descriptions of one-dimensional arrays
The general form of the description of one-dimensional array:
type array_name[size];
In the definition above:
- type – the type of array items. It is also called a base type. The base type determines the amount of data of each item that is an array. Array type can be both a base type and the aggregate type (e.g., structure). About the basic C++ types of data is described here in details.
- size – number of items in array;
- array_name – directly the array name that provides access to the array elements.
After describing the array, elements value may be zero or undefined.
Example 1. Description of the array of 10 integers (type int) with the name of A.
int A[10];
As a result, 10 int type cells are allocated in the memory of the computer. If one cell is 2 bytes then total will be allocated 20 bytes of memory. Number of the first cell starts from zero. These cells are share a common name of A.
Figure 1. An array of 10 integers
Example 2. Description array named M, that contains 20 items of type char.
char M[20];
4. Access to the elements of one-dimensional array. Examples
Access to a single element of the array is implemented by using the index. The index determines the position of the element in the array. The first element of the array has index zero.
To access a separate element of the array by its index, it is necessary after the name of of the array in square brackets specify number of of this element.
Example 1. Let there be given array called A, containing 10 integers. Write the number 5 in the first and last elements of the array.
// definition of the array A int A[10]; A[0] = 5; // first item A[9] = 5; // last item
Figure 2 shows the result of the above code.
Figure 2. The result of the code snippet
Example 2. An array of 10 elements of type char.
char M[10]; M[3] = 'a'; M[7] = '0'; M[8] = ';';
Figure 3. An array of 10 items of type char
Example 3. An array of 30 reals.
double M[30]; // an array of 30 reals // zeroing the array for (int i=0; i<30; i++) M[i] = 0.0;
5. How to define the size of a one-dimensional array?
The size of a one-dimensional array is defined by the formula:
array size = the size of type in bytes × number of elements
Example. If the array has 20 elements of type double (8 bytes), the array size will be
size = 20 × 8 = 160 bytes
6. Features of array processing by the compiler in C++. The boundaries of array
In C++ not realized a strict control of access to the elements outside the array. If you defint the array of 100 items, it is possible to read or change the 101 th, 102 th and the following items. In these positions can be memory locations that have been allocated to other variables or even your program. This can lead to the destruction of the program in the absence of any comments from the C++ compiler.
It means all the responsibility for complying the boundaries of arrays lies strictly on the programmer. The programmer must write code that guarantees the correct operation with arrays. This is implemented by including a special checks into the program.
7. How does the array initialization in C++. Examples
C++ supports two kinds of initializing arrays:
- initialization using of the size of array;
- “dimensionless” initialization.
General view of the array initialization with specifying the size:
type array_name[size] = { values_list };
where
-
- type – type of array items;
- size – the number of elements in the array of the specified type;
- values_list – a list of values of array initialization. The array elements are separated by ‘ , ‘ (comma).
General view of the “dimensionless” initialization:
type array_name[] = { values_list };
In this case, the array size is determined by the number of elements which are described in values_list.
Example 1. Array B is initialized by the size set.
// initialization of array B int B[10] = { 5, 6, 9, -8, 3, 2, 4, -90, -103, 0 };
Example 2. Array C is initialized on the basis of a list of values (“dimensionless” initialization).
// "dimensionless" initialization of array C float C[] = { -3.9, 2.8, -1.6, 2.2 };
8. Initialization of character arrays. Example
For character arrays, you can use a shortened version of the initialization:
char array_name[size] = "string";
In this case, each element of the array is assigned to a single character in the string. The size value specifies the size of the memory that is allocated for the array. The size must be at least the length of the string, otherwise the compiler will give an error message.
It is also allowed to initialize the array without specifying its size
char array_name[] = "string";
In this case, the size of the array is equal to the length of the string.
Example. Initialize a character array named str.
// character array - a shortened version of the initialization char str[] = "Hello!"; // another option of character array initialization char str2[] = { 'H', 'e', 'l', 'l', 'o', '!', '\0' };
In the example above, str and str2 arrays contain the same values
9. The assignment one array to another. Example
In the C++ programming language (unlike other languages) can not directly assign one array to another. You can assign only element-wise with the cycle operator. In this case both arrays must have the same type of elements.
Suppose that two arrays of integers are given. A fragment of code that assigns one array to another:
// definition of arrays A and B int A[10], B[10]; int i; //A = B; // error! for (i=0; i<10; i++) B[i] = 0; for (i=0; i<10; i++) A[i] = B[i];
10. Definition of array the structures. Example
Let there be given definition of the structure, which contains information about the book:
struct BOOK { char title[50]; char author[50]; int year; float price; };
This description defines a new type struct BOOK. In this description, the memory is not allocated. It is only the information about a new type of data. The structure must be described outside the definition of any class at the beginning of the namespace definition.
The array of 5 books (structures) can be described as follows:
struct BOOK Books[5];
Access to the elements of structure in the program:
strcpy(Books[0].title, "Title-1"); strcpy(Books[0].author, "Author-1"); Books[0].year = 1970; Books[0].price = 28.85;
In the above code is used the function for working with strings
strcpy(str1, str2);
This function copies the string str2 into string str1. To use these and other functions to work with strings at the beginning of the program need to specify a string before the namespace description
#include <cstring>
or
#include <string.h>
Related topics
- Arrays. Part 2. Two-dimensional arrays. Arrays of strings. Multidimensional arrays
- Arrays. Part 3. Examples of solving the most common problems with one-dimensional arrays
- Arrays. Part 4. Examples of solving tasks using character strings
- Structures. Part 2. Memory allocation for the structure. Nested structures. Arrays of native structures
- Structures. Part 3. Working with managed-structures in CLR. Qualifiers ref and value. Declaring structural variables. Arrays of managed-structured variables. Initializing of managed-structures