Язык с. на фото с подробным объяснением!

schvarzengold100 schvarzengold100    2   16.12.2019 15:32    0

Ответы
опшпищи опшпищи  10.10.2020 21:00

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

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

Адрес сам по себе является целым числом. Память под него выделяется как под целое. Но для нормальной работы с указателем необходимо знать тип переменной, адрес которой хранит указатель.

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

Унарная операция & - получение адреса переменной.

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

int a=8 - переменной a целого типа присвоили значение 8

int *b - объявили указатель b на переменную целого типа.

&a - извлекли адрес переменной a.

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

*b=1+*b - получаем доступ к переменной, адрес которой храниться в b. Это равносильно такому выражению: a=1+a.

В итоге a=9

ответ: a=9

ПОКАЗАТЬ ОТВЕТЫ
muzess muzess  10.10.2020 21:00

a=9

Объяснение:

понятнее была бы запись такая :  

int a=8;//создаем переменную a и присваиваем ей значение 8

int *b;//создаем переменную *b типа указатель

b=&a;// присваиваем переменной b- адрес области памяти переменной а

b= &a // &- этот символ называется амперсанд, это операция , которая возвращает значение адреса переменной в области памяти, а операция * - позволяет получит значение по адресу,то есть переменной b присвоили значение адреса переменной а, а значит переменная *b уже хранит не адрес переменной а, а ее значение. А значит

после этой строки  *b=1+*b  мы увеличим значение а на 1.

Надеюсь, что я понятно объяснил.В любом случае рекомендую почитать про указатели и адреса в языке си, поскольку за ответ невозможно объяснить все нюансы .

ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика