Другие языки программирования и технологии

Указатель в Си

Что такое указатель в Си? и чем он полезен? опишите на примерах плиз! З.Ы ток ненад мне тут инфу с форумов кидать обьяните как вы это понимаете!)
Указатель - переменная, содержащая адрес другой переменной. Применений много, например, для того, чтобы функция могла изменить значение внешней переменной, функции в С передается ее адрес, то есть указатель.
АИ
Александр Иванов
32 266
Лучший ответ
указатель занимает меньше памяти, т. к он только указывает на какой то участок памяти
Например:
Операторы динамического распределения памяти:
new
delete
new - выделяет блок памяти, необходимый для размещения переменной
или массива. Форматы записи:
- память для переменных: <указатель на тип> = new <тип>
~~~~~~~~~~~~~~~~~~~~~~
int *p;
p = new int;
...
- память под переменную с одновременной инициализацией:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
<указатель на тип> = new <тип> (<параметры>)
int *p;
p = new int (10); // выд. память под p и *p=10
ЗАМЕЧАНИЕ: применение new для небольших по объёму данных
неэффективно, так как при этом выделяется минимум 16 байт.
- память под массив:
~~~~~~~~~~~~~~~~~~
<указатель на тип> = <тип> [<кол-во эл-тов>]
char *s = new char[10];

char **ps;
ps = new char *[10];
ps[0] = new char [5]; // - строка из 4 эл-тов
ps[1] = new char [10]; // - строка из 9 эл=тов
ps[2] = new char ('A'); // - указ. на один символ
Если оператор не может выделить память, то он присваивает указа-
телю на тип значение (void *)0 (ноль) .

delete - освобождает память, выделенную оператором new. Форматы
записи:
- память из-под переменных: delete <указатель на тип>
char *c = new char('c);
...
delete c;
- память из-под массивов:
delete [ <кол-во эл-тов> ] <указатель на тип>
└──────┬──────┘
эту часть можно опустить
char *s = new char [20];
int *p = new int [10];
...
delete [10] p;
delete [] s;
Кирилл Артемьев new и delete это не Си