Программирование >>  Структурное программирование 

1 ... 88 89 90 [ 91 ] 92 93 94 ... 342


mainO

int n[10] = {32, 27, 64, 18, 95, 14, 90, 70, 60, 37};

cout << Элемент << setw(13) << Значение << endl; for (int i = 0; i < 10; i++) ISO setw (7) i setw (13) n[i] endl;

sr return 0;

Рис. 4.4. Присваивание начальных значений элементам массива в объявлении (часть 1 из 2)

Элемент Значение

Рис. 4.3. Присваивание нулевых начальных значений элементам массива (часть 2 из 2)

Элементам массива можно присваивать начальные значения (инициализировать их) в объявлении массива с помощью следующего за объявлением списка (заключенного в фигурные скобки) одинаковых по смыслу и разделенных запятыми начальных значений. Программа на рис. 4.4 присваивает десять начальных значений элементам массива целых чисел и печатает массив в табулированном формате.

Если начальных значений меньше, чем элементов в массиве, оставшиеся элементы автоматически получают нулевые начальные значения. Например, элементам массива п на рис. 4.3 можно присвоить нулевые начальные значения с помощью объявления

int п[10] = {0};

которое явно присваивает нулевое начальное значение первому элементу и неявно присваивает нулевые начальные значения оставшимся девяти элементам, потому что здесь начальных значений меньше, чем элементов массива. Напомним, что автоматически массивы не получают нулевые начальные значения неявно. Программист должен присвоить нулевое начальное значение по крайней мере первому элементу для того, чтобы автоматически были обнулены оставшиеся элементы. Метод, использованный на рис. 4.3, можно применять повторно во время выполнения программы.

Типичная ошибка программирования 4.2

Забывают присвоить начальные значения элементам массива, требующим такого присваивания.

,Щ Присваивание начальных значений в объявлении массива

fl #include <iostream.h> J #include <iomanip.h>




#include <iostream.h> #include <iomanip.h>

main () {

const int arraySize = 10; int s[arraySize];

for (int j = 0; j < arraySize; j++) задание значений

s[j]=2+2*j;

cout << Элемент setw(13) Значение endl;

for(j = 0; j < arraySize; j++) печать значений

cout setw(7) j setw(13) s[j] << endl; return 0;

Рис. 4.5. Генерация значений, размещаемых в элементах массива (часть 1 из 2)

Значение 32 27 64 18 95 14 90 70 60 37

Рис. 4.4. Присваивание начальных значений элементам массива в объявлении (часть 2 из 2)

Следующее объявление массива

int п[5] = {32, 27, 64, 18, 95, 14};

вызвало бы синтаксическую ошибку, поскольку здесь список инициализации содержит шесть начальных значений, а массив имеет только 5 элементов.

Типичная ошибка программирования 4.3

Задание в списке начальных значений большего числа значений, чем имеется элементов в массиве, является синтаксической ошибкой.

Если размер массива не указан в объявлении со списком инициализации, то количество элементов массива будет равно количеству элементов в списке начальных значений. Например, объявление

int п[ ] = {1, 2, 3, 4, 5};

создало бы массив из пяти элементов.

Программа на рис. 4.5 присваивает начальные целые значения 2, 4, 6, 20 элементам массива s из десяти элементов и печатает массив в табулированном формате. Эти значения генерируются путем умножения каждого последующего значения счетчика цикла на 2 и прибавления 2.

РЮР Присваивание элементам массива четных начальных значений от 2 до 20.




Постоянный объект должен получить начальное значение main()

const int х; Ошибка: х должен получить

начальное значение X = 7; Ошибка: постоянный объект (именованную

константу) изменять нельзя

return 0;

Compiling FIG4 6.CPP:

Error FEG4 6.CPP 4: Constant variable x must be initialized

Error FEG4 6.CPP 6: Cannot modify a constant object

Рис. 4.6. Постоянный объект должен получить начальное значение

Значение 2 4 6 8 10 12 14 16 18 20

Рис. 4.5. Генерация значений, размещаемых в элементах массива (часть 2 из 2) Строка

const int arraySize = 10;

использует спецификацию const для объявления так называемой постоянной переменной arraySize, имеющей значение 10. Постоянные переменные должны получать при объявлении в качестве начальных значений постоянные выражения, которые после этого не могут быть модифицированы (рис. 4.6 и рис. 4.7). Постоянные переменные называются также именованными константами, или переменными только для чтения, или типизованными константами (однако, это может вызвать путаницу, поскольку в других языках, например, в Паскале, типизированная переменная - это нечто совершенно иное). Мы остановимся на термине именованная константа. Заметим, что термин постоянная переменная является оксюмороном - противоречием терминов, подобным большой малютке или ледяному ожогу . (Пожалуйста, пришлите нам ваши любимые оксимороны по электронной почте, указанной в предисловии. Спасибо!).

Типичная ошибка программирования 4.4

Присваивание значения именованной константе в выполняемом операторе является синтаксической ошибкой.



1 ... 88 89 90 [ 91 ] 92 93 94 ... 342

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика