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

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

Войти
Регистрация
Восстановить пароль
 
PodOnoK
16 / 13 / 0
Регистрация: 10.01.2010
Сообщений: 252
#1

Ссылки и адреса - C++

18.05.2010, 09:31. Просмотров 505. Ответов 3
Метки нет (Все метки)

Вот, где лучше всего использовать адреса и ссылки? Просто не много не понятня для чего это все.
Вот например эту запись
C++
1
2
int mas;
int* pmas=&mas
Чесно говоря, даже не понятно всего удобства. Зачем делать переменную *pmas если при обращении к ней или присваивании ей значения автоматически оно присваивается и mas...
Буду благодарен за помощь.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.05.2010, 09:31     Ссылки и адреса
Посмотрите здесь:

Понимание адреса, ссылки и указателя - C++
Гм... Конечно, стремно создавать подобную тему, однако, уж очень захотелось понять все это дело. Правда сколько раз ни пытался - не...

Как снять константность ссылки для передачи в функцию адреса - C++
Здравствуйте. Есть функция с сигнатурой: void func(const tm & _tm); В теле функции надо вызвать: time_t _mkgmtime( struct tm*...

адреса - C++
привет всем есть программа 1 /* контроль адресов */ 2 #include <stdio.h> 3 main( ) 4 { int pooh = 2, bah = 5; 5 printf("...

адреса - C++
здравствуйте! нужно "Вывести на экран 25 случайных чисел, находящихся в диапазоне от –100 до 100. Затем найти и вывести на экран номера...

IP адреса. - C++
Ребят всем привет.Требуется прочитать из реестра i все ip адреса компьютера. С этим проблем нет,но в разделе services лежит 5 ключей и в...

указатели и адреса. - C++
Пользователь вводит с клавиатуры строку – предложение с пробелами и знаками пунктуации длиной до 100 символов. Вывести на экран адреса...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
-Xeon-
2 / 2 / 0
Регистрация: 15.02.2010
Сообщений: 26
18.05.2010, 10:15     Ссылки и адреса #2
PodOnoK, в данной записи у тебя есть обычная переменная int mas и указатель int* pmas, далее у тебя указателю pmas присваевается адрес переменной mas (у тебя написанно int* pmas=&mas - это инициализирует указатель адрессом по которому хранится mas, это дело равносильно если написать так: int* pmas; pmas = &mas; // в последнем инициализируем указатель). Ссылок сдесь нет, & - операция изъятия адресса.

Добавлено через 7 минут
PodOnoK, ссылки объявляются так int &pmas = mas; // это ссылка. Ссылка это равносильно второму имени для какойто переменной или объекта. Есть ещё одно но: ссылка должна быть сразу инициализирована, т.е. написать так: int mas; int &pmas; pmas = &mas; не верно!

Добавлено через 2 минуты
Удобство использования указателей - это динамические массивы, строки, списки и т.д., всё это бес указателей не может существовать. Ссылки применяются например при перегрузки операторов (С++).
kravam
быдлокодер
1693 / 880 / 44
Регистрация: 04.06.2008
Сообщений: 5,441
18.05.2010, 10:31     Ссылки и адреса #3
Указатели НЕЗАМЕНИМЫ в том случае, если ты написал каку-то функцию и в ходе исполнения этой функции ДОЛЖНО измениться значение глобальной переменной
(Если такая переменная одна, то можно сделать, чтобы функйция возвращала её значение, а если две или больше, то только через указатели)

Для этого в эту функцию необходимо передать оджним из параметров адрес этой переменной, в теле функции его разыменовать и всё будет ОК
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include <stdio.h>
#include <windows.h>
 
 
void funktsia (int* uk) {
 *uk= *uk+ 100;
}
 
 
 
 
int main () {
 int per= 0;
 
 //Вот этой переменной необходимо изменить значение ВХОДЕ ВЫПОЛНЕНИЯ ФУНКЦИИ funktsia
 int per_1= 0;
 //Щас оно равно нулю
 printf ("per_1= %d\n", per_1);
 
 //Для этого пишем так:
 int* ukaz= &per_1;
 funktsia (ukaz);
 
 //(Можно бло бы написать funktsia (&per);  эффект был бы тот же)
 
 printf ("per_1= %d\n", per_1);
 system ("pause");      
 
}
Добавлено через 1 минуту
ПРрошу прощения, надо так:
//(Можно бло бы написать funktsia (&per_1); эффект был бы тот же)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.05.2010, 14:45     Ссылки и адреса
Еще ссылки по теме:

IP-адреса подсетей - C++
Не подскажите как реализовать по ёмкости маленькую программу которая будет определять по заданному классу (А, В или С), количеству подсетей...

смена IP-адреса - C++
день добрый. не подскажите как программно заставить венду сменить IP ?

Получение IP адреса (Си) - C++
Есть ли функция или библиотека для С для определения своего реального интернет IP адреса? Или может есть сервис?

Адреса и указатели - C++
Приветствую! Не могу понять, как работать с указателями и адресами для переменных. Если можно, как можно проще объясните, коль не сложно....

Получение адреса - C++
Есть следующая строка: long int array; Что означает, если мы напишем следующее: (char*)Arr; Мы получим начало адреса...

смещения адреса - C++
как в с++ указывать смещение адреса? адрес к примеру 0х1234567 и его смещения +70 +4ac


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

Или воспользуйтесь поиском по форуму:
IchMors
97 / 93 / 4
Регистрация: 16.05.2010
Сообщений: 310
19.05.2010, 14:45     Ссылки и адреса #4
А если использовать ссылку то всё же так:

C++
1
2
3
4
5
void funktsia (int& uk) {
 uk= uk+ 100;
}
//вызов в мейне 
funktsia (per_1);
Yandex
Объявления
19.05.2010, 14:45     Ссылки и адреса
Ответ Создать тему
Опции темы

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