18.02.2011, 14:12 | #1 |
Бессмертный
|
Структуры в С++
Как вы уже знаете, переменная в C/C++ объявляется следующим образом:
int iMyVariable; В приведенном операторе iMyVariable объявлена как целая переменная. А вот объявление переменной типа char: char cMyChar; Такие типы данных, как int, float, char и long, являются неотъемлемой частью C/C++ и вам не нужно писать никакого кода, чтобы сообщить компилятору о том, что означают эти слова. C/C++ позволяет вам также объ-являть свои собственные, специальные типы данных. В следующем разделе вы узнаете, как объявлять структуры, которые можно отнести к специальным типам данных. Напишите следующий исходный код: #include <iostream> #include <string.h> using namespace std; // Объявление структуры. struct MYSTRUCTURE { char sName[100]; int iAge; }; void main( void ) { MYSTRUCTURE MyStructure; strcpy(MyStructure.sName, "Vladimir" ); MyStructure.iAge = 27; cout << "My name is "; cout << MyStructure.sName; cout << " and I am "; cout << MyStructure.iAge; cout << " years old." << endl; cin.get(); } << endl; В коде, который вы написали, имеются два оператора #include: #include <iostream> #include <string> Файл iostream включен в код, поскольку в main(void) используется cout. Файл string включается потому, что в main(void) используется функция strcpy() (объявленная в файле string). Затем вы объявляете структуру: Struct MYSTRUCTURE { char sName[100]; int iAge; }; Обратите внимание на синтаксис объявления структуры. Оно начинается с ключевого слова struct, за которым следует имя типа-структуры. В этой программе типу структуры присвоено имя MYSTRUCTURE. Затем следует собственно определение структуры, заключенное в фигурные скобки. Не забудьте поставить точку с запятой после закрывающей фигурной скобки. Теперь посмотрите на код внутри фигурных скобок: char sName[100]; int iAge; Это означает, что MYSTRUCTURE состоит из строки с именем sName и целого с именем iAge, sName и iAge называются элементами данных структуры; Вы объявили их "Внутри" cтруктуры MYSTRUCTURE. Код в main(void) объявляет переменную с именем MyStructure типа MYSTRUCTURE: MYSTRUCTORE MyStructure; Вспомните, что в объявляли переменную iNum1 следующим образом: int iNum1; Когда вы объявляете MyStructure , которая будет структурой типа MYSTRUCTURE, рассматривайте переменную MyStructure аналогично переменной iNum1. MyStructure - это имя переменной, а ее типом является MYSTRUCTURE точно так же, как типом переменной iNum1 является int. (Обратите внимание, что по традиции имя структуры составлено из символов нижнего регистра или в нем смешаны символы нижнего и верхнего регистров, как, например, в имени MyStructure, но в имени типа структуры используются только символы верхнего регистра, как, например, в MYSTRUCTURE.) Следующий оператор в main(void) копирует строку 'Vladimir' в элемент данных MyStructure.sName: strcpy ( MyStructure.sName, "Vladimir" ); В этом операторе обращение к элементу данных sName записано как MyStructure.sName Следующий оператор присваивает значение 27 элементу данных iAge cтруктуры MyStructure: MyStructure.iAge - 27; Затем выполняется ряд операторов вывода cout: cout << "My name is "; cout << MyStructure.sName; cout << " and I am "; cout << MyStructure.iAge; cout << " years old." << endl; Сложив все вместе, мы видим, что программа MyStruct выводит сообщение My name is Vladimir and I am 27 years old. (Меня зовут Vladimir и мне 27 лет) |
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
|
|