SEO продвижение сайтов

Указатели и Линки

В языке C++ очень часто используют указатели и ссылки на переменную.

Понятие указателя

Указатель — это переменная. Такая же, как и любая другая. У нее есть свое значение и свой адрес в памяти. Переменная-указатель объявляется также, как и любые другие переменные, но после имени типа ставится звездочка - *. Чтобы объявить переменную следует указать ее тип, а затем имя. Звездочка является частью типа, а не частью имени.

Пример:

int *a;//0x1

А можно и так:

int* a1; //0x1
int * a2;//0
int *a3; //0x17

Чтобы получить адрес переменной, нужно перед ее именем написать амперсанд - &.

#include <iostream>//Подключаем cin и cout и др.
using namespace std;//Пространство имён

int main()
{
setlocale(0,"");//Кириллица

int a=123;
int *b=&a;

cout << "Значение а=" << a << endl;//123
cout << "Адрес а=" << b << endl; //0x22fe34
cout << "Адрес а=" << &a << endl;//0x22fe34
cout << "Опять значение а=" << *b << endl;//123

system("pause");//Задержка
return 0;//Возвращаем числовое значение
}

Адресная арифметика

К указателям можно прибавлять или отнимать числа и как бы перемещать адрес вперед или назад. На основе этого сделана адресация в массиве, так как массив - это непрерывная информация в памяти, расположенная последовательно.

#include <iostream>//Подключаем cin и cout и др.
using namespace std;//Пространство имён

int main()
{
setlocale(0,"");//Кириллица

int array[5] = {1,2,3,4,5};//Массив в пять элементов
int *p=&array[0];//или так: int *p = array;
p++;
cout << *p << endl;//2
p+=3;
cout << *p << endl;//5

system("pause");//Задержка
return 0; //Возвращаем числовое значение
}

Имя массива — это указатель на его начало - точка отсчета. Строки: int *p=&array[0]; и int *p = array; равнозначны.

Код функции, которая меняет местами две переменные.

...
void swap(double* a, double* b)
{
double temp=*a;//Временная переменная
*a=*b;
*b=temp;
}

...
swap(&x, &y);
...

Понятие ссылки

В языке C++ появился новый механизм работы с переменными — ссылки.

Конструкция double name& объявляет ссылку на переменную типа double. При таком объявлении функции в стек будут положены не значения переменных, а их адреса. Ссылка — это указатель, с которым можно работать, как с обычной переменной.

Различия между ссылкой и указателем: Ссылка не может быть равна NULL, а указатель может. Ссылка не может быть непроинициализирована, а указатель может.

...
void swap(double& a, double& b)
{
double temp=a;
a=b;
b=temp;
}

...
swap(x, y);
...

Ошибки в тексте выделить и Ctrl+Enter


Расскажи о нас друзьям

Web-технологии

SQL инъекции в PHP

Конечно, SQL инъекции в PHP возможны только при отсутствии проверки данных из форм и при наличии явных ошибках программистов. Я пишу эту статью для тех, кто НЕ хочет стать жертвой таких атак на свой сайт и для тех, кто хочет писать свои безопасные приложения.

Пишем форму для отправки логина и пароля для АВТОРИЗАЦИИ:

<form action="" method="POST">
        <input type="text" name="email" value="<?=$email?>"><br>
        <input type="text" name="pass" value="<?=$pass?>"><br>
        <input type="submit" name="subm" value="Авторизоваться">
</form>
Подробнее...

PHP-код вывода массивов в HTML

Все программисты PHP (с любым уровнем подготовки), конечно знаю, как вывести массив PHP в HTML-код: ну, конечно же через цикл!

Я предлагаю это сделать при помощи функции, которая отобразит любой массив в любом виде c HTML оформлением. Данной функции мы передаём в качестве аргументов: массив и формат отображения его в виде другой функции.

Такой подход даёт универсальность данной функции отображения массива и значительно сокращает дублирование PHP кода.

Пример:

Подробнее...

Composer — менеджер зависимостей в PHP

https://getcomposer.org/

  • Запускаем Open Server, открываем консоль,
  • Переходим в папку проекста - cd C:\Users\alehin_gv\Desktop\OSPanel\domains\test.ru
  • Скачиваем Композер - composer init
  • Устанавливается composer.json
Подробнее...
Интересные статьи

День Победы со слезами на глазах...

День Победы со слезами на глазах...

Дорогие друзья, вот и прошёл пожалуй самый светлый праздник для нашей страны, для нашего народа - ДЕНЬ ПОБЕДЫ - 9 мая.

Но, как именно прошёл праздник 75-летия ПОБЕДЫ в этом году, я хочу напомнить сегодня, спустя 4 дня от празднования исторической даты.

У меня такое ощущение, как будто никто не заметил, что ПОЛИЦАИ по всей стране в этот день задерживали, арестовывали и штрафовали именно за память о Победе, за возложение цветов к памятникам нашим павшим героям.

Подробнее...

Стишки-депрессяшки

Стишки-депрессяшки

У меня нет попы

у меня нет тить

я должна работать

чтобы как то жить

©

В камасутре много

интересных поз

жаль у нас с женою

остеохондроз

©

Надо же приснится

всякая херня

прямо на работе

среди бела дня

Подробнее...

Почему или резонные вопросы

Почему или резонные вопросы

Хотель бы получить ответы на такие вопросы:

  1. Почему современные технологии одновременно позволяют производить банки для пива, которые не разлагаются на свалке за 100 лет, и кузова автомобилей, которые гниют за 3-4 года?
  2. Почему лимонный сок сделан из концентрата, а средство для мытья посуды – из настоящего лимона?
  3. Почему белая нитка, которой соединены новые носки, всегда оказывается прочнее, чем нитки, из которых сделаны сами носки?
Подробнее...

Оставить заявку

Закрыть
Заполните фрму и отправьте нам заяку
Заполните все обязательные поля*
captcha
Перезагрузить