Студопедия

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

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

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






  • Как продвинуть сайт на первые места?
    Вы создали или только планируете создать свой сайт, но не знаете, как продвигать? Продвижение сайта – это не просто процесс, а целый комплекс мероприятий, направленных на увеличение его посещаемости и повышение его позиций в поисковых системах.
    Ускорение продвижения
    Если вам трудно попасть на первые места в поиске самостоятельно, попробуйте технологию Буст, она ускоряет продвижение в десятки раз, а первые результаты появляются уже в течение первых 7 дней. Если ни один запрос у вас не продвинется в Топ10 за месяц, то в SeoHammer за бустер вернут деньги.
    Начать продвижение сайта
  • Краткие теоретические сведения. Указатель – это переменная, которая может содержать адрес некоторого объекта в памяти компьютера, например адрес другой переменной






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

    Указатель объявляется следующим образом:

    тип *идентификатор;

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

    int *pti; char *ptc; float *ptf;

    После такого описания переменная pti может принимать значение указателя на величину целого типа; переменная ptc предназначена для хранения указателя на величину типа char; переменная ptf – на величину типа float.

    С указателями связаны две унарные операции: & и *. Операция & означает «взять адрес» операнда (т.е. установить указатель на операнд). Данная операция допустима только над переменными. Операция * имеет смысл: «значение, расположенное по указанному адресу» и работает следующим образом:

    - определяется местоположение в оперативной памяти переменной типа указатель.

    - извлекается информация из этого участка памяти и трактуется как адрес переменной с типом, указанным в объявлении указателя.

    - производится обращение к участку памяти по выделенному адресу для проведения некоторых действий.

    Пример 1:

    int x, /* переменная типа int */

    *y; /* указатель на элемент данных типа int */

    y=& x; /* y - адрес переменной x */

    *y=1; /* косвенная адресация указателем поля x

    “по указанному адресу записать 1”, т.е. x=1; */

    Пример 2:

    int i, j=8, k=5, *y;

    y=& i;

    *y=2; /* i=2 */

    y=& j; /* переустановили указатель на переменную j */

    *y+=i; /* j+=i, т.е. j=j+1 -> j=j+2=10 */

    y=& k; /*переустановили указатель на переменную k */

    k+=*y; /* k+=k, k=k+k = 10 */

    (*y)++; /* k++, k=k+1 = 10+1 = 11 */

    Указателю-переменной можно присвоить значение другого указателя либо выражения типа указатель с использованием, при необходимости операции приведения типа (приведение необязательно, если один из указателей имеет тип " void *").

    int i, *x;

    char *y;

    x=& i; /* x -> поле объекта int */

    y=(char *)x; /* y -> поле объекта char */

    y=(char *)& i; /* y -> поле объекта char */

    Рассмотрим фрагмент программы:

    int a=5, *p, *p1, *p2;

    p=& a; p2=p1=p;

    ++p1; p2+=2;

    printf(“a=%d, p=%d, p=%p, p1=%p, p2=%p.\n”, a, p, p, p1, p2);

    Результат выполнения:

    a=5, *p=5, p=FFC8, p1=FFCC, p2=FFD0.

    Конкретные значения адресов зависят от ряда причин: архитектура компьютера, тип и размер оперативной памяти и т.д.

    Операции над указателями (адресная арифметика)

    Записывая выражения и операторы, изменяющие значения указателей, необходимо помнить главное правило: единицей изменения указателя является размер соответствующего ему типа.

    Например, int *pti; char *ptc; float *ptf;

    Выполнение операторов pti=pti+1; или pti++; изменит значение указателя pti на 2, в результате чего он примет значение FFC2. В результате выполнения оператора pti--; значение указателя уменьшится на 2 и станет равным FFBE.

    Аналогично для указателей других типов:

    ptc++; увеличит значение указателя на 1;

    ptf++; увеличит значение указателя на 4.

    Разрешается сравнивать указатели и вычислять разность двух указателей. При сравнении могут проверяться отношения любого вида (" > ", " > =", " < ", " < =", " ==", "! ="). Наиболее важными видами проверок являются отношения равенства или неравенства.

    В заголовочном файле stdio.h определена константа – нулевой указатель с именем NULL. Ее значение можно присваивать указателю. Например: ptf=NULL;

    Нулевой указатель обозначает отсутствие конкретного адреса ссылки.

    Пример. Ввести два целых числа. Вычислить сумму, разность и деление этих чисел.

    #include< stdio.h>

    #include< stdio.h>

    void main()

    { int a, b, *p1, *p2, *p3;

    float *p4;

    clrscr();

    puts(“Введите 2 целых числа”);

    scanf (“%d%d”, a, b);

    *p1=a+b;

    *p2=a*b;

    *p3=a-b;

    *p4=(float)a/b;

    printf (“%d + %d=%d\n”, a, b, *p1);

    printf (“%d * %d=%d\n”, a, b, *p2);

    printf (“%d - %d=%d\n”, a, b, *p3);

    printf (“%d / %d=%f\n”, a, b, *p4);

    getch();

    }






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