18.02.2011, 14:01 | #1 |
Бессмертный
|
Адресация в С++
Напишем программу, которая показывает, что одна из ячеек памяти занята под переменную iNum1 и содержит значение 2. Как программист, вы называете эту ячейку iNum1, но компьютер ссылается на эту ячейку памяти, используя определенное число. Ячейки памяти нумеруются в компьютере последовательно: 1, 2, 3, 4 и т.д. Эти числа называются адресами ячеек памяти. Как программисту, вам, вероятно, никогда не понадобится знать значение адреса этой ячейки памяти, который не всегда один и тот же. В зависимости от того, что выполнялось перед вашей программой, что уже имеется в памяти, и в зависимости от других факторов, адрес, используемый для хранения iNum1, будет меняться даже на одном и том же компьютере. Тем не менее, вы можете извлечь адрес, использующийся для ячейки памяти, посредством операции & (операция взятия адреса). Чтобы посмотреть ее в действии, сделайте следующее:
void main( void ) { int iNum1; iNum1 = 2; cout << "Address of iNum1 is: "; cout << iNum1 << endl; } Добавленный вами блок кода выводит адрес, использующийся для ячейки памяти переменной iNumI: |
10.08.2024, 14:06 | #2 |
Избранный
|
Re: Адресация в С++
Вы правы, чтобы вывести адрес памяти, занимаемой переменной, нужно использовать оператор & для получения адреса этой переменной. Ваш код выводит значение переменной iNum1, но не ее адрес. Вот исправленный пример кода:
cpp Копировать код #include <iostream> using namespace std; int main(void) { int iNum1; iNum1 = 2; cout << "Address of iNum1 is: "; cout << &iNum1 << endl; // Используем оператор & для получения адреса переменной iNum1 return 0; } В этом примере &iNum1 возвращает адрес памяти, где хранится переменная iNum1. Этот адрес будет разным каждый раз, когда вы запускаете программу, и может изменяться при каждом выполнении, так как он зависит от состояния памяти и других факторов. |
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
|
|