ВУЗ:
Составители:
Рубрика:
18
Рассмотрим выражение b[i]. Компилятор рассматривает это выражение так, как
будто вы написали его в виде *(b+i), т.е. b[i] то же самое, что и *(b+i).
&b[i] - это то же самое, что и b+i.
Если же вместо имени массива используется указатель, компилятор выполняет
такое же преобразование:
<имя указателя>[i] преобразовывается в *(<имя указателя>+i)
ЗАДАНИЯ
2.1 Из массива a все положительные числа переслать в массив b, все
отрицательные – в массив c. Массивы b и c создать как динамические массивы.
2.2 Матрица a содержит не более к нулевых строк. Переслать все ненулевые
строки матрицы a в матрицу b. Матрицу b создать как динамический массив из k
строк.
3 УКАЗАТЕЛИ И СТРОКИ
char s1[20]=”bear”; // массив хранит значение bear
const char *s2=”wren”; // указатель хранит
адрес строки ”wren”
//употребление const означает, что указатель можно использовать для обращения
//к строке, но не для её изменения
char *p; //указатель не инициализирован
cout<<p; // может отобразиться мусор или вызвать сбой; p не указывает на
//выделенную область памяти
p=s1; // установка р в качестве указателя на строку данных
cout<<p; //допустимо, эквивалентно cout<<s1
Упражнение 12. Протестируйте функции получения
копии строки
void copy3(char *s1, char *s2)
{char *p=s1, *q=s2;
Страницы
- « первая
- ‹ предыдущая
- …
- 16
- 17
- 18
- 19
- 20
- …
- следующая ›
- последняя »