Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Предопределённые идентификаторы.Содержание книги
Поиск на нашем сайте
_ _cplusplus - исходный текст должен компилироваться как C++, а не C _ _ DATE_ _ - во время компиляции преобразовывается в строку, заключая в кавычки, содержащую дату компиляции. _ _FILE_ _ - вместо FILE подставляется строчка с именем файла, с учётом полного пути _ _LINE_ _ - содержит в себе номер текущей строки _ _TIME_ _ - время последней компиляции cout << “Error in”<<_ _FILE_ _ #define <<”str”<<_ _LINE_ _<< <<”cur time”<<_TIME_; Диагностический макрос (микрокоманда) assert. Макрос assert имеет вид: assert (выражение) Позволяет программисту отследить не предусмотренные задачей ситуации во время выполнения программы. assert (x<0) assertion failed: x<0; file…; line…….; 2. #undef – отмена использования #define #define MESSAGE “hello” cout<<MESSAGE; #undef MESSAGE cout<<MESSAGE; // выдаст ошибку #ifdef MESSAGE #else #define MESSAGE “hello” #endif #if defined(_Win32) typedef ind int 32; #else typedef long int 32; #endif int 32 m=1; // 32 разряда 3. #include – получаем доступ к стандартной библиотеке
#include std lib user files general.h general.cpp func1.cpp func2.cpp #include “general.h” #include “general.cpp” #include “func1.cpp” #include “func2.cpp”
Указатели. Указатель – переменная, содержащая адрес другого объекта си программы. Если переменная содержит адрес некоторого другого объекта, то говорят, что переменная указывает на этот объект. Виды указателей на объект на функции -указатели -базовые типы -на массивы -struct, union, class… int * pn; //объявим указатель на тип данных int int *pn; то же int* pn; самое
Замечание: 1. Объектом, на которые указывают указатели, может быть как одиночная переменная базового типа, так и первый элемент одномерного массива. 2. При представлении выше объявления указателя, выделяется память для переменной типа указателя. Но сам указатель пока никуда не указывает. Рекомендуется проводить инициализацию указателя во время объявления. int a; int b=10; В зависимости от контекста объявления память под указатель компилятор может выделить: в стеке (локальная переменная), в статической области данных (глобальная или статическая), heap (динамически независима от того, где находится сам объект). int *p; //глобальная { int * p1; //локальная static int * p2; //статическая } Инициализация указателя и оператор получения адреса объекта.
& - амперсант Чтобы провести явную инициализацию указателя: int n=1; int *pn=&n; int a[100]; int *pa=&a; char *pstr=”string”; char *pstr=&”string”;
Арифметика указателей.
int * p2; p2=pn; pn++; pn=pn+sizeof(int); p2=pn+5; p2=pn+5*sizeof(int) if (pn==p2) Существует вид указателя на объекты любого типа: void *; void * pvoid; int n; char c; int * pn; pvoid=&h; // OK pvoid=&c; //OK pvoid=pn; //OK reinterpret_cast double d=99.99; int n=d; //d=99 int n=0x12345; char c=n; int *pn=&n; char *pc=reinterpret_cast <char*> (&n); Массивы.
Свойства массивов: 1. В памяти расположена совокупность упорядоченных элементов данных (последовательно). 2. Данные должны быть одного и того же типа. 3. Данные занимают непрерывно линейную область памяти. 4. Каждый массив имеет имя (оно является константным указателем, равным адресу начала массива, нулевого байта, нулевого элемента массива). Тип такого указателя зависит от размерности массива. 5. Доступ к отдельным элементам массива может осуществляться по имени массива и индексу (порядковый №) элемента или с помощью оператора <<*>> разыменовывания.
|
||||
Последнее изменение этой страницы: 2021-12-15; просмотров: 42; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.118.151.112 (0.006 с.) |