Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






  • Сервис онлайн-записи на собственном Telegram-боте
    Тот, кто работает в сфере услуг, знает — без ведения записи клиентов никуда. Мало того, что нужно видеть свое расписание, но и напоминать клиентам о визитах тоже. Нашли самый бюджетный и оптимальный вариант: сервис VisitTime.
    Для новых пользователей первый месяц бесплатно.
    Чат-бот для мастеров и специалистов, который упрощает ведение записей:
    Сам записывает клиентов и напоминает им о визите;
    Персонализирует скидки, чаевые, кэшбэк и предоплаты;
    Увеличивает доходимость и помогает больше зарабатывать;
    Начать пользоваться сервисом
  • Как продвинуть сайт на первые места?
    Вы создали или только планируете создать свой сайт, но не знаете, как продвигать? Продвижение сайта – это не просто процесс, а целый комплекс мероприятий, направленных на увеличение его посещаемости и повышение его позиций в поисковых системах.
    Ускорение продвижения
    Если вам трудно попасть на первые места в поиске самостоятельно, попробуйте технологию Буст, она ускоряет продвижение в десятки раз, а первые результаты появляются уже в течение первых 7 дней. Если ни один запрос у вас не продвинется в Топ10 за месяц, то в SeoHammer за бустер вернут деньги.
    Начать продвижение сайта

Указатели






Указатели (ссылки) – это переменные, показывающие место или адрес памяти, где расположены другие объекты (переменные, функции и т.п.). Т.к. указатель содержит адрес некоторого объекта, то через него можно обращаться к этому объекту.

Почему я в последнем случае написала «переменную», а не «значение переменной»? Потому что это выражение (*p) может стоять как в правой части оператора присваивания (будет возвращено значение, хранящееся в памяти по адресу p), так и в левой части оператора присваивания (в память по этому адресу запишется значение). Выражения, обладающие такими свойствами, называют L-выражениями (L-Value).

У такого выражения есть АДРЕС, ТИП и, разумеется, ЗНАЧЕНИЕ. Но у него нет ИМЕНИ И нет ОБЛАСТИ ВИДИМОСТИ.

 

 

Формат: описания переменной указателя

< тип> *< имя> [, *< имя> ]...;

 

Объекты, состоящие из знака * и адреса необходимо объявлять!

Объявление вида: char *d; говорит о том, что значение, записанное по адресу d, имеет тип char.

Пример:

int *kol, *num; Признаком указателя служит *.

double *lenght;

Операции над указателями: над указателями определены две унарные операции: & *

Унарная операция & возвращает адрес объекта в явном виде, поэтому оператор:

y = & x;

присваивает адрес x переменной y. Операцию & нельзя применять к константам и выражениям. Операция применима только к объектам, имеющим имя и размещенным в памяти.

Унарная операция * воспринимает свой операнд как адрес некоторого объекта и использует этот адрес для выборки содержимого. Поэтому, оператор:

z = *y;

присваивает z значение переменной, записанной по адресу y.

int *a; Объявляет переменную a типа «указатель на int», то есть содержащую адрес некоторого целого значения.
& x Возвращает адрес переменной a
*p Возвращает " переменную" по адресу, находящемуся в переменной p.

 

Пример: int x, y, *px;

px=& x;

y=*px;

Это эквивалентно y = x;

Указатели могут встречаться в выражениях. Если y – указатель на целое (int *y;), то *y может появляться там же, где и любая другая переменная, не являющаяся указателем.

Пример:

*y = 7; //заносим 7 в ячейку памяти по адресу y

*x = *x*5; //увеличиваем значение по адресу x в 5 раз

(* z)++; //добавляем 1 к содержимому ячейки памяти с адресом z, круглые скобки обязательны

 

Вывод:

Тип данных Размер, байт Диапазон значений
unsigned char   0 … 255
signed char   –128 … 128
unsigned short (int)   0 … 65535
unsigned int   0 … 65535
short int (short)   –32768 … 32768
int   –32768 … 32768 (–215 … 215–1)
unsigned long (int)   0 … 4294967295
long (int)   –2147483648 … 2147483648 (–231 … 231–1)
float   | x | = 3.4E–38 … 3.4E+38
double   | x | = 1.7E–308 … 1.7E+308
long double   | x | = 3.4 E–4932 … 3.4E+4932

 







© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.