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

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

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

Указатели и ссылки (& vs * ) - C++

17.11.2009, 12:45. Просмотров 1558. Ответов 3
Метки нет (Все метки)

Объясните в двух словах отличие - принципиальное.
и в каких ситуациях что продуктивнее использовать ?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.11.2009, 12:45     Указатели и ссылки (& vs * )
Посмотрите здесь:

C++ Указатели и ссылки
C++ Ссылки и указатели
C++ Ссылки и указатели
C++ Указатели и ссылки [С++]
Ссылки vs Указатели C++
C++ Указатели и ссылки
Указатели(Какую роль выполняют &* и *&) C++
Указатели и ссылки C++
C++ Указатели и ссылки c++
Указатели и ссылки C++
C++ Ссылки, указатели
Ссылки и указатели C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
R0mm
Псевдо программист
 Аватар для R0mm
192 / 113 / 15
Регистрация: 19.09.2009
Сообщений: 303
17.11.2009, 13:01     Указатели и ссылки (& vs * ) #2
Есть переменная А типа int. Под нее выделяется участок памяти.
запись &A вернет адрес этого участка.
запись *А ни к чему хорошему не приведет.

Есть переменная P типа int *(указатель). Под нее выделяется участок памяти.
запись &P вернет адрес этого участка.
запись *P вернет содержимое участка, на который ссылается указатель P.
Monte-Cristo
 Аватар для Monte-Cristo
2807 / 1372 / 30
Регистрация: 07.03.2009
Сообщений: 4,446
17.11.2009, 13:29     Указатели и ссылки (& vs * ) #3
Ссылки были введены в языке C++, в языке С - их не было. Некоторые на ссылки говорят "скрытая форма указателя".. в этом, есть доля правды.. Ссылки были введены для того, что передавать переменные в функции, с правами изменения. Хотя это реализщуемо и через указатели, ссылки упрощают запись. Вот, посмотрите:

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
30
31
#include <iostream>
using namespace std;
 
void func1(int &x) // передача аргумента по ссылке
{
    x = 10;
}
 
void func2(int *x) // передача указателя на переменную
{
    *x = 10; // разименовываем указатель и присваеваем значение переменной 10
}
 
int main()
{
    int A = 5;
    int B = 5;
    
    cout << "A=" << A << endl;
    cout << "func1(int &x)" << endl;
    func1(A); // просто передаем переменную A
    cout << "A=" << A << endl; // видим, что переменная A изменилась, и равна теперь 10
    
     
    cout << "\nB=" << B << endl;
    cout << "func2(int *x)" << endl;
    func2(&B); // передаем адресс переменной B
    cout << "B=" << B << endl; // видим, что переменная B изменилась, и равна теперь 10
  
    return 0;
}
rangerx
1921 / 1530 / 139
Регистрация: 31.05.2009
Сообщений: 2,892
17.11.2009, 14:22     Указатели и ссылки (& vs * ) #4
http://faqs.org.ru/progr/c_cpp/cpp_lite.htm
Yandex
Объявления
17.11.2009, 14:22     Указатели и ссылки (& vs * )
Ответ Создать тему
Опции темы

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