Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.92
Nessaj
0 / 0 / 0
Регистрация: 31.07.2009
Сообщений: 18
#1

Использование указателей - C++

02.08.2009, 20:39. Просмотров 1587. Ответов 22
Метки нет (Все метки)

Всем привет, вот изучаю помалу С++. И уже третий час немогу впарится в Указатели недаётся мне это, вот вроде более менее разобрался, скажите правильно нет:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
 int main()
 {
     int xxx;
     unsigned short int myAge = 5;
     unsigned short int * pAge = NULL;  // a pointer
     pAge=&myAge;
     std::cout << "pAge " << pAge<<"\n"; //Хранится адрес myAge
     std::cout << "*pAge " << *pAge<<"\n"; //Указывает на переменную в myAge
     std::cout << "&pAge " << &pAge<<"\n"; //Показывает свой адрес
     std::cout << "myAge " << myAge<<"\n"; //Показывает свою переменную
     std::cout << "&myAge " << &myAge<<"\n"; //Показывает свой адрес
     std::cin >>xxx;
     return 0;
 
 }
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
novi4ok
550 / 503 / 8
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
05.08.2009, 00:55     Использование указателей #21
Цитата Сообщение от DarKNesS Посмотреть сообщение
Следует вопрос как его увеличить, ради любопытства, вдруг придется столкнутся с таким.
VC6->Help->Index->stack sizes->setting
полезно также:
stack space->allocatiing for threads
все это в msdn имеется.

Добавлено через 1 минуту 29 секунд
Цитата Сообщение от odip Посмотреть сообщение
Угу.
Только система не блоки выделяет, а куски непрерывной памяти для адресного пространства процесса.
Блоки там уже функции malloc(), free() нарезают.
если детали хочется узнать, можно, например, здесь:
http://stackoverflow.com/questions/1...-and-free-work
DarKNesS
0 / 0 / 0
Регистрация: 28.08.2007
Сообщений: 11
05.08.2009, 01:08     Использование указателей #22
Цитата Сообщение от novi4ok Посмотреть сообщение
я вам этот примерчик не для наследования привел, а чтобы вы могли за несколько минут удовлетворить наглядно ваше любопытство.
Точнее за несколько долей секунд... Окошко толком появиться не успевает...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.08.2009, 05:28     Использование указателей
Еще ссылки по теме:

Код с использование указателей C++
Использование ссылок и указателей C++
использование указателей C++
C++ Использование умных указателей
Использование указателей C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
accept
4817 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
05.08.2009, 05:28     Использование указателей #23
Цитата Сообщение от DarKNesS
И что они хранятся в куче, а если допустим объявить MyClass mc; то он будет в стеке.
указатель - обычная переменная
в переменной хранятся данные, у данных есть тип, в указателе хранятся данные типа адрес

программа при запуске размещает свои области в физической памяти, которая ей доступна, благодаря системе, а потом генерит свою адресацию

C++
1
2
3
void Core::loadPlugins(QString path)
{
    QDir dir(path);
эта разместит объект dir типа Qdir прямо в функции, он удалится после закрывающей фигурной скобки

C++
1
2
3
void Core::loadPlugins(QString path)
{
    QDir *dir= new QDir(path);
здесь выделится память (система даёт большой кусок памяти программе, и программа может от него отрезать нужное количество), потом адрес этой памяти записывается в локальный указатель (записывается - значит копируется)
после закрывающей фигурной скобки указатель удаляется вместе со своими данными (копией адреса) а память продолжает оставаться выделенной
её надо освободить, а адрес стал неизвестным (то есть он есть, но его никак не узнаешь, надо было сохранять или возвращать или освободить память до закрывающей фигурной скобки)

локальная переменная вместе с её данными существует только во время блока, в котором она создана (объявлена, определена)
Yandex
Объявления
05.08.2009, 05:28     Использование указателей
Ответ Создать тему
Опции темы

Текущее время: 11:44. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru