Адрес указателя и хранение информации в памяти - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Решил поэкспериментировать с указателями. Возник вопрос. Данная строка кода p = p+1; , как я понимаю, должна "смещать" указатель и он будет указывать в другое место. Теперь значение указателя равняется 0, т.е. он указывает на какую то другую ячейку памяти. Можно ли как-нить узнать адрес куда теперь указывает указатель??? И еще можно ли в Си, какому-либо конкретному адресу присвоить значение? Например есть адрес

0x7fffafaa675c

и я хочу чтобы по данному адресу хранилось целочисленное значение 144. Если я не ошибаюсь, то данный адрес является адресом первой ячейки в которую записывается значение и далее заполняются последующее количество ячеек в зависимости от типа переменной (например 4 байта для int)
#include<stdio.h>
 
int main(){
 
int a = 0;
int *p;
p = &a;
 
printf("The address of variable a is: %p\n", &a);
printf("The address of pointer is: %p\n", &p);
printf("The value of pointer is: %d\n", *p);
 
*p = *p+1;
 
printf("The address of pointer is: %p\n", &p);
printf("The value of pointer is: %d\n", *p);
 
p = p+1;
 
printf("The address of pointer is: %p\n", &p);
printf("The value of pointer is: %d\n", *p);
 
return 0;
}

Решение задачи: «Адрес указателя и хранение информации в памяти»

textual
Листинг программы
#include<stdio.h>
 
int main(){
 
int a = 0;
int *p;
p = &a;
printf("The address of pointer p is: %d\n", p);
p = p+1;
printf("The address of pointer p is: %d\n", p);
return 0;
}

Объяснение кода листинга программы

  1. Подключение стандартной библиотеки для работы с файлами и вывода данных (stdio.h).
  2. Объявление переменных: — a (тип int, значение 0). — p (тип int*, инициализируется как адрес переменной a).
  3. Вывод адреса указателя p на экран с помощью функции printf.
  4. Изменение значения указателя p на следующий элемент в памяти (p+1).
  5. Вывод нового адреса указателя p на экран с помощью функции printf.
  6. Завершение работы программы (возврат 0).

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 4.333 из 5
Похожие ответы