Проанализируйте распределение памяти и определите результат работы приведенного фрагмента программы (если данные располагаются, начиная с адреса 1000).
int *P=&A;
float C=0.5, *G=&C;
int A=1, B=12;
printf(“%u %d %f\n”, G, *(&A), *G);
C/C++
СРОЧНО. Решить на языке С++
Начнём с того, что этот код не скомпилируется. От слова "совсем". В строке int *P=&A; переменной A ещё не существует и компилятор выдаст ошибку. Если же менять местами определения переменных, то и их адреса в памяти поменяются.
Во вторых, компилятор сам решает, в какой последовательности переменные будут размещаться в памяти. И разные компиляторы даже на одной архитектуре могут дать разные результаты.
В третьих, в разных системах команд и разных компиляторах указатели и переменные типа int имеют разный размер. И выводимые на экран значения для 32-битного и 64-битного экзешников на одном и том же PC будут совершенно разными.
В четвёртых, автоматические переменные при каждом вызове подпрограммы размещаются - в общем случае - в разных адресах памяти. Утверждать, что автоматические данные располагаются с адреса 1000 - невежество, впариваемое под видом обучения.
Во вторых, компилятор сам решает, в какой последовательности переменные будут размещаться в памяти. И разные компиляторы даже на одной архитектуре могут дать разные результаты.
В третьих, в разных системах команд и разных компиляторах указатели и переменные типа int имеют разный размер. И выводимые на экран значения для 32-битного и 64-битного экзешников на одном и том же PC будут совершенно разными.
В четвёртых, автоматические переменные при каждом вызове подпрограммы размещаются - в общем случае - в разных адресах памяти. Утверждать, что автоматические данные располагаются с адреса 1000 - невежество, впариваемое под видом обучения.
А зачем ты вообще пошел на программирование, если учиться не хочешь? Думаешь на работе тоже кто-то за тебя будет программы писать? Скажи маме, что хочешь быть таксистом или дальнобойщиком и бросай эту пустую трату родительских денег.
Правильное объявление переменных выглядит так:
float C=0.5, *G=&C;
int A=1, B=12;
int *P=&A;
Компилятор выделит память по своему усмотрению, не обязательно в строгом порядке объявления переменных.
Например, в ОС Андроид указатель *P будет иметь наименьший адрес, переменная C - наибольший адрес, остальные переменные - как угодно компилятору.
float C=0.5, *G=&C;
int A=1, B=12;
int *P=&A;
Компилятор выделит память по своему усмотрению, не обязательно в строгом порядке объявления переменных.
Например, в ОС Андроид указатель *P будет иметь наименьший адрес, переменная C - наибольший адрес, остальные переменные - как угодно компилятору.
Похожие вопросы
- Нужно срочно решить задачу на C++
- Решить задачу на языке СИ
- Помогите пожалуйста решить задачу на языке С#.
- Написать программу на языке Си, которая решит эту задачу:
- Помогите решить данное задание, на языке программирования с++
- Помогите решить пример на языке C++
- Решите задачу на любом языке, или хотя бы скажите идею как это вообще решать пожалуйста.
- Помогите решить программу на языке c++
- Срочно нужна помощь (Дана строка, содержащая зашифрованный русский текст. решить нужно на с++
- C++,помогите срочно!!! Ни как не могу понять как решить данную задачу