В
Все
Х
Химия
В
Видео-ответы
А
Алгебра
Г
Геометрия
О
ОБЖ
Д
Другие предметы
У
Українська література
Р
Русский язык
Б
Беларуская мова
У
Українська мова
Э
Экономика
Ф
Физика
М
Математика
Ф
Французский язык
Г
География
И
Информатика
М
МХК
О
Окружающий мир
П
Психология
Н
Немецкий язык
О
Обществознание
П
Право
И
История
М
Музыка
Л
Литература
Қ
Қазақ тiлi
Б
Биология
А
Английский язык
tanyaanya200615
tanyaanya200615
28.11.2022 17:40 •  Информатика

Язык с. на фотографии с комментариями решения.

Ответ:
romaantonizin1
romaantonizin1
23.08.2020 11:22

Немного теории:

Любой доступ к элементу массива, осуществляемый с операции индексирования может быть осуществлен при указателей.

Имя массива хранит адрес его нулевого элемента. Поэтому адрес любого i элемента массива можно представить как (x+i), где x - указатель на первый элемент массива. А его значение как *(x+i)

Подобные операции верны для любого типа и размера массивом, так как при прибавлении к указателю целого числа, он "сдвигается" не на i байтов, а на i элементов этого типа.

В данном задании:

int a[]= {7,8,9} - инициализация массива. По сути, это описание и присваивание значения одновременно. После выполнения этой строчки: a[0]=7; a[1]=8; a[2]=9 - массив из трех элементов, нумерация с нуля.

int *b=a -  Эта строчка переводится как "создаем переменную b типа указатель на целое и присваем ему адрес нулевого элемента массива".

*(b+2)=b+1 - очень странная запись.

*(b+2) равносильно a[2] - значение последнего элемента данного массива. Переменная b содержит целое число, которое является адресом нулевого элемента массива. b+1 - указатель "сдвигается на 1 элемент вправо", т.е (b+1) - адрес первого элемента массива.

То есть данная запись означает, что в последний элемент массива(a[2] в данном случае) записывается адрес первого элемента массива(a[1] в данном случае).

b[1] - такая запись указателя с индексом равносильна a[1] - значению первого элемента массива.

В итоге: b[1] <=> a[1]=8

Примечание:

Изначально ваша программа не выполниться, так как запись int b*=a - неверная(правильно int *b=a)

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?