Студопедия
Новини освіти і науки:
МАРК РЕГНЕРУС ДОСЛІДЖЕННЯ: Наскільки відрізняються діти, які виросли в одностатевих союзах


РЕЗОЛЮЦІЯ: Громадського обговорення навчальної програми статевого виховання


ЧОМУ ФОНД ОЛЕНИ ПІНЧУК І МОЗ УКРАЇНИ ПРОПАГУЮТЬ "СЕКСУАЛЬНІ УРОКИ"


ЕКЗИСТЕНЦІЙНО-ПСИХОЛОГІЧНІ ОСНОВИ ПОРУШЕННЯ СТАТЕВОЇ ІДЕНТИЧНОСТІ ПІДЛІТКІВ


Батьківський, громадянський рух в Україні закликає МОН зупинити тотальну сексуалізацію дітей і підлітків


Відкрите звернення Міністру освіти й науки України - Гриневич Лілії Михайлівні


Представництво українського жіноцтва в ООН: низький рівень культури спілкування в соціальних мережах


Гендерна антидискримінаційна експертиза може зробити нас моральними рабами


ЛІВИЙ МАРКСИЗМ У НОВИХ ПІДРУЧНИКАХ ДЛЯ ШКОЛЯРІВ


ВІДКРИТА ЗАЯВА на підтримку позиції Ганни Турчинової та права кожної людини на свободу думки, світогляду та вираження поглядів



Приклад

void main()

{

int a;

a = 5;

int *b; //a: 5 &a: 9004:0FFE b : 000B:8FCF

b = &a; //a: 5 &a: 9004:0FFE b: 9004:0FFE

*b = 10; //a: 10 &a: 9004:0FFE b: 9004:0FFE

}

 

З наведених прикладів можна зробити висновок, що надати значення деякій статичній змінній можна двома способами:

- використовуючи її ім’я ( а = 5)

через вказівник, значенням якого

Вказівнику дозволено вказувати тільки на об'єкти певного типу. (Існує одне виключення: "вказівник на void" може вказувати на об'єкти будь-якого типа, але до такого вказівника не можна застосовувати оператор непрямого доступу.

Якщо ip вказує на x цілого типу, то *ip можна використовувати в будь-якому місці, де допустимо вживання x;

наприклад*ip = *ip + 10; збільшує *ip на 10.

Унарні оператори * і & мають більш високий пріоритет, ніж арифметичні оператори, так що присвоєння у = *ip + 1; бере те, на що вказує ip, і додає до нього 1, а результат присвоює змінній у.

Аналогічно *ip += 1; збільшує на одиницю те, на що вказує ip; ті ж дії виконують ++*ip; і (*iр)++;

В останньому записі дужки необхідні, оскільки якщо їх не буде, збільшиться значення самого вказівника, а не того, на що він вказує. Це обумовлено тим, що унарні оператори * і ++ мають однаковий пріоритет і порядок виконання - справа наліво.

Оскільки вказівники самі є змінними, в тексті вони можуть зустрічатися і без оператора непрямого доступу.

- є адреса цієї змінної (b = &a; *b = 10)

Переадресація вказівників

Відразу після створення вказівника b (int *b), він отримує значення випадкової адреси (b = 000B:8FCF). Варто пам’ятати, що комірка пам’яті з адресою 000B:8FCF – випадкова, тобто в цій комірці може зберігатися значення деякої іншої змінної (неможливо сказати якої, бо адреса її вибиралася випадково). Тому, якщо відразу після створення вказівника b (int *b) виконати оператор *b = 10, то таким чином можна змінити значення деякої змінної (визначити якої неможливо). Тому після створення вказівника необхідно:

- або переадресувати її на потрібну статичну змінну (як у наведених прикладах b = &a – переадресація вказівника b на статичну змінну а);

- або створити так звану динамічну змінну, адрес якої буде міститися у вказівнику)


Читайте також:

  1. I. Культура учебного труда как теоретическая и прикладная проблема педагогической психологии
  2. Абсолютні синоніми (наприклад, власне мовні й запозичені) в одному тексті ділового стилю вживати не рекомендується.
  3. Алгоритм однофакторного дисперсійного аналізу за Фішером. Приклад
  4. Аналіз структури та динаміки необоротних активів за даними Ф№1 «Баланс» (на прикладі ВАТ «Горизонт»)
  5. Ассиметричное прикладывание: руководство пользователя
  6. Базові та прикладні класифікації
  7. В процесі читання виділіть маркером або підкресліть приклади дії променів на живі організми.
  8. В чому полягає явище тунелювання через потенціальний бар’єр, наведіть приклади.
  9. Визначення і приклади
  10. Вільсон О. Г. Охорона праці в галузі (на прикладі будівництва). Навчальний посібник. – К.: «Основа». 2006. – 204 с.
  11. Возникновение прикладной психологии, 1892-1919
  12. ВПРАВА 11. Ознайомтеся з фрагментами наукових текстів, знайдіть приклади для характеристики синтаксичних особливостей викладу інформації українською мовою.




Переглядів: 486

<== попередня сторінка | наступна сторінка ==>
Приклад | Динамічна пам’ять

Не знайшли потрібну інформацію? Скористайтесь пошуком google:

  

© studopedia.com.ua При використанні або копіюванні матеріалів пряме посилання на сайт обов'язкове.


Генерація сторінки за: 0.007 сек.